Signal Reconstruction Method and Apparatus

ABSTRACT

A method includes determining a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix, and determining a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns; determining a correlation between a k th  residual error and the multiple columns according to a correlation between a (k−1) th  residual error and the multiple columns, and determining a k th  array most correlative to the measured value of the original signal according to the correlation between the k th  residual error and the multiple columns in the sensing matrix, where 2≦k≦K; and recovering the original signal after determining a K th  array most correlative to the measured value of the original signal.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of International Application No. PCT/CN2013/075315, filed on May 8, 2013, which claims priority to Chinese Patent Application No. 201210174062.5, filed on May 30, 2012, both of which are hereby incorporated by reference in their entireties.

TECHNICAL FIELD

The present invention relates to the communications field, and in particular, to a signal reconstruction method and apparatus.

BACKGROUND

A conventional signal processing process may include four parts, namely, sampling, compression, storage/transmission, and decompression. In the sampling process, data collection is first performed for an original signal according to the Nyquist sampling theorem, and then the collected data is compressed. In the compression process, the collected data is transformed first, and then a few coefficients with large absolute values are compressed and encoded, and other coefficients equal or close to zero are discarded. In the compression process, a majority of data obtained through the sampling is discarded.

In recent years, a new signal collection technology has been put forward, that is, a compressed sensing technology. The compressed sensing technology takes advantage of a feature that an original signal s is sparse. That is to say, the original signal has only K_sparse non-zero items with unknown positions after experiencing orthogonal transformation. The amount of data measured by using the compressed sensing technology is much smaller than the amount of data required in conventional sampling.

In the process of implementing compressed sensing, a measured value (non-adaptive linear projection) of the original signal s is obtained first, where the measured value is represented by equation (1.1):

y=Φs  (1.1)

In the above equation, y is the measured value, Φ is a measurement matrix, and s is the original signal. The original signal s is represented as a column vector with N items, and has a sparse expression. That is to say, Ψs=x obtained after orthogonal transformation Ψ has only K_sparse (K_sparse<<N) non-zero items with unknown positions. The measured value y is a column vector with M items (M<<N & M>2K_sparse), and the measurement matrix Φ has M rows and N columns.

After the measured value y of the original signal is obtained and then stored/transmitted, signal reconstruction may be performed. In the prior art, a signal reconstruction method is: first, under a constraint condition y=Tx, X is found; and then according to equation s=Ψ^(H)x, s is calculated, where a matrix T=ΦΨ^(H) is called a sensing matrix, Φ is a measurement matrix, and Ψ is the orthogonal transformation. The sensing matrix T is also called a dictionary, and each column in the dictionary is also referred to as an atom.

The signal can be reconstructed by using an orthogonal matching pursuit method, which is implemented through the following steps.

Step 1: First, initialize variables for iteration, which is detailed as follows.

Step 1.1: Set an initial value {tilde over (y)} of a residual error to make {tilde over (y)}=y.

Step 1.2: Set an initial value of a base matrix B to be an empty matrix: B₀=

. The base matrix B selects column K that best matches a received signal y from a dictionary T to build a sparse approximation of y, and an index of a column already selected by the base matrix B is denoted as a column vector τ, and its initial value τ₀ is an empty vector.

Step 1.3: Before the k^(th) iteration in an iteration process starts, denote a column that is not selected into the base matrix B in a sensing matrix as T_(N+1−k)=

_(−(k−1)), where

−(k−1)=N−k+1, T_(N+1−k)=

_(−(k−1)) has N+1−k columns, and an initial value is T_(N)=T.

An initial value of an estimated value of sparse expression x is set to {circumflex over (x)}=0_(N), where 0_(N) represents a zero column vector with N items, that is, a column vector with each item being zero.

The modulus of each column in the sensing matrix T is denoted as a column vector

⁻⁽⁰⁾=[∥t₍₁₎∥₂ ∥t₍₂₎∥₂ . . . ∥t_((N))∥₂]^(T), where t_((i)) (i=1, 2, . . . , N) represents the i^(th) column of T, ∥t_((i))∥₂ represents the modulus of a vector t_((i)), and [•]^(T) represents transposition of the vector or a matrix [•].

A column vector

⁻⁽⁰⁾=π_(N)=[1 2 . . . N]^(T) records sequence numbers of atoms that are not selected into the base matrix B.

Step 2: The initial value of k is 1. Then the following iteration starts.

Step 2.1: Calculate, by using formula (1.2), a correlation between the k^(th) residual error and each column in the sensing matrix from which k−1 columns are deleted:

_(−(k−1))=

_(−(k−1)) {tilde over (y)}  (1.2)

In the above formula,

(k−1)=N−k+1,

_(−(k−1)) represents a matrix with M rows and

−(k−1) columns, and when k=1, the residual error {tilde over (y)}=y, that is, the residual error {tilde over (y)} is equal to a measured value vector; and when k=1,

_(−(k−1))=

⁻⁽⁰⁾=T_(N)=T, that is,

_(−(k−1)) is the sensing matrix T; and

_(−(k−1)) is a column vector with

−(k−1) items, and its i^(th) item represents the value of correlation between the i^(th) column of

_(−(k−1)) and the residual error {tilde over (y)}. It should be noted that,

_(−(k−1)) includes

−(k−1) columns, which are

−(k−1) columns to be selected in the sensing matrix T, that is,

−(k−1) atoms to be selected in the sensing matrix T; and

_(−(k−1)) is obtained by deleting k−1 columns from the sensing matrix T, where the k−1 columns have been selected and placed into the base matrix.

Step 2.2: Determine, by using formula (1.3), a sequence number of a column with the maximum correlation value:

$\begin{matrix} {\rho_{k} = {\underset{i = 1}{\overset{\bullet^{-}{({k - 1})}}{argmax}}{{q_{i}}/\delta_{i}}}} & (1.3) \end{matrix}$

In the above formula, q_(i) represents the i^(th) item of

_(−(k−1)), δ_(i) represents the i^(th) item of

_(−(k−1)),

_(−(k−1)) is a modulus of each column of

_(−(k−1)), and |•| represents the absolute value of a scalar .

Step 2.3: Update the column

_(−(k−1)) to be selected by the selected base matrix B and the sensing matrix.

A k^(th) column is added to the base matrix B to make B_(k)=[B_(k−1) t_((ρ) _(k) ₎], where t_((ρ) _(k) ₎ represents the ρ_(k) ^(th) column of

_(−(k−1)). Correspondingly, the ρ_(k) ^(th) column, t_((ρ) _(k) ₎, is deleted from

_(−(k−1)) to obtain

_(−(k)) for subsequent iteration. The initial value B_(k−1)=B_(l−1)=B₀ of the base matrix B is an empty matrix.

Step 2.4: According to τ_(k−1), obtain an index τ_(k) of each column of the base matrix B_(k); and according to an index

_(−(k−1)) of each column of

_(−(k−1)) and the modulus

_(−(k−1)) of each column, obtain an index

_(−(k)) of each column of

_(−(k)) and the modulus

_(−(k)) of each column.

τ_(k)=[τ_(k−1) ^(T) π_(ρ) _(k) ]^(T) is obtained, where π_(ρ) _(k) is the ρ_(k) ^(th) item in

_(−(k−1)); the ρ_(k) ^(th) item, π_(ρ) _(k) , is deleted from

_(−(k−1)) to obtain

_(−(k)) it for subsequent iteration; and the ρ_(k) ^(th) item is deleted from

_(−(k−1)) to obtain

_(−(k)) for subsequent iteration.

Step 2.5: Update a weight coefficient of each column selected in the base matrix B and a corresponding residual error.

First, a column vector z_(k) composed of the weight coefficients of the columns selected in the base matrix B is calculated by using formula (1.4):

z _(k)(B _(k) ^(H) B _(k))⁻¹ B _(k) ^(H) y  (1.4)

In the above formula, (•)⁻¹ represents an inverse matrix of the matrix (•). Then, the residual error {tilde over (y)} is obtained by using formula (1.5):

{tilde over (y)}=y−B _(k) z _(k)  (1.5)

If k<K (generally, K is smaller than or equal to K_sparse), the value of k increases by 1, and the process goes back to step 1.

Step 3: Recover the signal.

The initial value of the estimated value of sparse expression x is {circumflex over (x)}=0_(N). In {circumflex over (x)}, let the ρ_(k) ^(th) item be {circumflex over (x)}_(τ) _(k) =z_(k) (k=1, 2, . . . , K), where z_(k) is the k^(th) item of z_(K), and τ_(k) is the k^(th) item of the vector τ_(k). Then the original signal is calculated as ŝ=Ψ^(H){circumflex over (x)}.

As can be seen from the above, when determining each column of the base matrix, it is necessary to determine the correlation between

_(−(k−1)) and each column of the residual error by using formula

_(−(k−1))=

_(−(k−1)){tilde over (y)}.

_(−(k−1)) is a vector with

−(k−1) rows and N columns, where the value of N is very large; therefore, the complexity of calculating

_(−(k−1)){tilde over (y)} is extremely high.

Therefore, an appropriate method is desired to ensure proper recovery of a signal and reduce the amount of calculation for reconstructing the signal.

SUMMARY

Embodiments of the present invention provide a signal reconstruction method to ensure proper recovery of a signal and reduce the amount of calculation for reconstructing the signal.

In a first aspect, a signal reconstruction method is provided, including determining a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix, and determining a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns in the sensing matrix; determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix, and determining a k^(th) array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where 2≦k≦K; and recovering the original signal after determining a K^(th) array most correlative to the measured value of the original signal in the sensing matrix.

With reference to the first aspect, in a first possible implementation manner of the first aspect, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix includes: from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where the (k−1)^(th) base difference is a vector or a vector set, and the (k−1)^(th) difference coefficient is a scalar or a scalar set or a set of vectors composed of multiple scalars.

With reference to the first possible implementation manner of the first aspect, in a second possible implementation manner of the first aspect, before the from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix further includes: if k=2, determining a first base difference; if k=3, determining the (k−1)^(th) base difference according to a first base difference; or if k≧4, determining the (k−1)^(th) base difference according to first to (k−2)^(th) base differences.

With reference to the second possible implementation manner of the first aspect, in a third possible implementation manner of the first aspect, the determining a first base difference includes determining the first base difference t _(N−1) by using formula t ₁=λ₁·θ_((ρ) _(l) ₎; and the determining the (k−1)^(th) base difference includes determining the (k−1)^(th) base difference by using formula t _(k−1)=−λ_(k−1) T _(k−2)ũ_(k−2)+λ_(k−1)θ_((ρ) _(k−1) ₎, where λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_((ρ) _(l) ₎ is a ρ_(l) ^(th) column of Θ, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in Θ, Θ is a correlation matrix of the sensing matrix, ρ_(l) is a sequence number of a column in the sensing matrix, where the column is a column of a first array most correlative to the measured value of the original signal in the sensing matrix, T ₁=[ t ₁], T _(k−1)=[ T _(k−3) t _(k−2)], λ_(k−1)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ_(k−2) ^(H)ũ_(k−2))}, ũ_(k−2)=( t _((ρ,:)) ^(H))^(H), θ_(ρ) _(k−1) _(,ρ) _(k−1) is an item in a ρ_(k−1) ^(th) row and a ρ_(k−1) ^(th) column in Θ, t _(ρ) _(k) _(,:)) ^(H) is a ρ_(k−1) ^(th) row in T _(k−2), and ρ_(k−1) is a sequence number of a column in the sensing matrix, where the column is a column of a (k−1)^(th) array most correlative to the measured value of the original signal in the sensing matrix.

With reference to the third possible implementation manner of the first aspect, in a fourth possible implementation manner of the first aspect, before the from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix further includes determining the k^(th) difference coefficient a_(k) by using formula a_(k)=λ_(k)q_(ρ) _(k) ^(k−1).

With reference to the third or fourth possible implementation manner of the first aspect, in a fifth possible implementation manner of the first aspect, the method further includes determining F₁ by using formula F₁=[λ₁]; and if 2≦k≦K, determining F_(k) by using formula

${F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}},$

where u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1); and the recovering the original signal of the received signal after determining a K^(th) array of the base matrix includes recovering the signal according to the F_(K).

With reference to the fifth possible implementation manner of the first aspect, in a sixth possible implementation manner of the first aspect, the recovering the signal according to the F_(K) includes determining a weight coefficient column vector z_(K) by using formula z_(K)=F_(K)a_(K); determining x according to the weight coefficient column vector to make {circumflex over (x)}_(τ) _(k) =z_(k), where z_(k) is a k^(th) item of z_(K), and τ_(k) is a column in an array most correlative to the measured value of the original signal in the sensing matrix; and obtaining the original signal according to the x.

With reference to the second possible implementation manner of the first aspect, in a seventh possible implementation manner of the first aspect, the determining a first base difference includes determining a first column and a second column of T ₂ as the first base difference; and the determining the (k−1)^(th) base difference includes determining a (2k−3)^(th) column and a (2k−2)^(th) column of T _(2k−2) as the (k−1)^(th) base difference, where

T ₂=[λ₁θ_((ρ) _(l) ₎ f _(1,2)θ_((ρ) _(l) ₎+λ₂×flipud(θ*_((ρ) _(l) ₎)],

T _(2k−2) =[ T _(2k−4)λ_(2k−3) {tilde over (t)} _(k)(f _(2k−3,2k−2) {tilde over (t)} _(k−1)+λ_(2k−2)×flipud({tilde over (t)}* _(k−1)))],

λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_(ρ) _(l) _(,ρ) _(l) represents an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in the sensing matrix Θ, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column in the sensing matrix Θ, f_(1,2)=−λ₂λ₁u″₁, λ₂=1/√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁ represents an item in the ρ_(l) ^(th) row and a (N−ρ_(l)+1)^(th) column in the sensing matrix Θ, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row of Q, Q is a matrix composed of correlations between the first residual error and the multiple columns in the sensing matrix, λ_(2k−3)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ′_(2k−4) ^(H)ũ′_(2k−4))}, ũ′_(2k−4)=( T _(2k−4)( ρ _(k−1),:))^(H), T _(2k−4)( ρ _(k−1),:) represents a ρk−1 ^(th) row in the matrix T _(2k−4), f_(2k−3,2k−2)=−λ_(2k−2)λ_(2k−3)ũ″_(2k−3), λ_(2k−2)=1/√{square root over (1/λ_(2k−3) ²−|ũ″_(2k−3)|²)}, ũ″_(2k−3)=λ_(2k−3)(θ _(ρ) _(k−1) _(,ρ) _(k−1) − T _(2k−4)( ρ _(k−1),:)×ũ′_(2k−4))*, {tilde over (t)}_(k−1)=θ_((ρ) _(k−1) ₎− T _(2k−4)ũ′_(2k−4), and θ_(ρ) _(k−1) ₎ is a ρ_(k−1) ^(th) column in the matrix Θ.

With reference to the seventh possible implementation manner of the first aspect, in an eighth possible implementation manner of the first aspect, before the from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix further includes determining a first row and a second row of A₂ as a first difference coefficient; and determining a (2k−3)^(th) row and a (2k−2)^(th) row of A_(2k−2) as the (k−1)^(th) difference coefficient, where

${A_{{2k} - 2} = \begin{bmatrix} A_{({{2k} - 4})} \\ {\lambda_{{2k} - 3}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} \\ {{\left( f_{{{2k} - 3},{{2k} - 2}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} + {\lambda_{{2k} - 2}\left( {\overset{\sim}{a}}_{{{2k} - 4},:}^{H} \right)}^{*}} \end{bmatrix}},{and}$ $A_{2} = {\begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}.}$

With reference to the seventh or eighth possible implementation manner of the first aspect, in a ninth possible implementation manner of the first aspect, the method further includes determining F₂ by using formula

${F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}};$

and if 2≦k≦K, determining F_(2k) by using formula:

${F_{2k} = \left\lbrack \begin{matrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{matrix} \right\rbrack},$

where reorder(w_(2k−2)) refers to exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of a vector w_(2k−2), and then calculating a conjugate of each item of the vector, where i=1, 2, . . . , k−1, and w_(2k−2)=F_(2k−2)ũ′_(2k−2); and the recovering the original signal of the received signal after determining a K^(th) column of the base matrix includes recovering the signal according to the F_(2 K).

In a second aspect, a signal reconstruction apparatus is provided, including a first determining unit configured to determine a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix, and determine a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns in the sensing matrix; a second determining unit configured to determine a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix, and determine a k^(th) array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where 2≦k≦K; and a recovering unit configured to recover the original signal after the second determining unit determines a K^(th) array most correlative to the measured value of the original signal in the sensing matrix.

With reference to the second aspect, in a first possible implementation manner of the second aspect, the second determining unit is configured to, from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtract a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where the (k−1)^(th) base difference is a vector or a vector set, and the (k−1)^(th) difference coefficient is a scalar or a scalar set or a set of vectors composed of multiple scalars.

With reference to the first possible implementation manner of the second aspect, in a second possible implementation manner of the second aspect, the second determining unit is further configured to: if k=2, determine a first base difference; if k=3, determine the (k−1)^(th) base difference according to a first base difference; or if k≧4, determine the (k−1)^(th) base difference according to first to (k−2)^(th) base differences.

With reference to the second possible implementation manner of the second aspect, in a third possible implementation manner of the second aspect, the second determining unit is configured to determine the first base difference t _(N−1) by using formula t ₁=λ₁·θ_((ρ) _(l) ₎; and determine the (k−1)^(th) base difference by using formula t _(k−1)=−λ_(k−1) T _(k−2)ũ_(k−2)+λ_(k−1)θ_((ρ) _(k−1) ₎, where λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_((ρ) _(l) ₎ is a ρ_(l) ^(th) column of Θ, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in Θ, Θ is a correlation matrix of the sensing matrix, ρ_(l) is a sequence number of a column in the sensing matrix, where the column is a column of a first array most correlative to the measured value of the original signal in the sensing matrix, T ₁=[ t ₁], T _(k−2)=[ T _(k−3) t _(k−2)], λ_(k−1)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ_(k−2) ^(H)ũ_(k−2))}, ũ_(k−2)=( t _((ρ,:)) ^(H))^(H), θ_(ρ) _(k−1) _(,ρ) _(k−1) is an item in a ρ_(k−1) ^(th) row and a ρ_(k−1) ^(th) column in Θ, t _((ρ) _(k) _(,:)) ^(H) is a ρ_(k−1) ^(th) row in T _(k−2), and ρ_(k−1) is a sequence number of a column in the sensing matrix, where the column is a column of a (k−1)^(th) array most correlative to the measured value of the original signal in the sensing matrix.

With reference to the third possible implementation manner of the second aspect, in a fourth possible implementation manner of the second aspect, the second determining unit is further configured to determine the k^(th) difference coefficient a_(k) by using formula a_(k)=λ_(k)q_(ρ) _(k) ^(k−1).

With reference to the third or fourth possible implementation manner of the second aspect, in a fifth possible implementation manner of the second aspect, the method further includes a third determining unit configured to determine F₁ by using formula F₁=[λ₁], and if 2≦k≦K, determine F_(k) by using formula

${F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}},$

where u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1); and the recovering unit is configured to recover the signal according to the F_(K).

With reference to the fifth possible implementation manner of the second aspect, in a sixth possible implementation manner of the second aspect, the recovering unit is configured to determine a weight coefficient column vector z_(K) by using formula z_(K)=F_(K)a_(K); determine x according to the weight coefficient column vector to make {circumflex over (x)}_(τ) _(k) =z_(k) where z_(k) is a k^(th) item of z_(K), and τ_(k) is a column in an array most correlative to the measured value of the original signal in the sensing matrix; and obtain the original signal according to the x.

With reference to the second possible implementation manner of the second aspect, in a seventh possible implementation manner of the second aspect, the second determining unit is configured to determine a first column and a second column of T ₂ as a first base difference; and determine a (2k−3)^(th) column and a (2k−2)^(th) column of T _(2k−2) as the (k−1)^(th) base difference, where:

T ₂=[λ₁θ_((ρ) _(l) ₎ f _(1,2)θ_((ρ) _(l) ₎+λ₂×flipud(θ*_((ρ) _(l) ₎)],

T _(2k−2) =[ T _(2k−4)λ_(2k−3) {tilde over (t)} _(k)(f _(2k−3,2k−2) {tilde over (t)} _(k−1)+λ_(2k−2)×flipud({tilde over (t)}* _(k−1)))],

λ₁√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_(ρ) _(l) _(,ρ) _(l) represents an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in the sensing matrix Θ, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column in the sensing matrix Θ, f_(1,2)=−λ₂λ₁u″₁, λ₂=1√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁ represents an item in the ρ_(l) ^(th) row and a (N−ρ_(l)+1)^(th) column in the sensing matrix Θ, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row in Q, Q is a matrix composed of correlations between the first residual error and the multiple columns in the sensing matrix, λ_(2k−3)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ′_(2k−4) ^(H)ũ′_(2k−4))}, ũ′_(2k−4)=( T _(2k−4)( ρ _(k−1),:))^(H), T _(2k−4)( ρ _(k−1),:) represents a ρ _(k−1) ^(th) row in the matrix T _(2k−4), f_(2k−3,2k−2)=−λ_(2k−2)λ_(2k−3)ũ″_(2k−3), λ_(2k−2)=1/√{square root over (1/λ_(2k−3) ²−|ũ″_(2k−3)|²)}, ũ″_(2k−3)=λ_(2k−3)(θ _(ρ) _(k−1) _(,ρ) _(k−1) − T _(2k−4)( ρ _(k−1),:)×ũ′_(2k−4))*, {tilde over (t)}_(k−1)=θ_((ρ) _(k−1) ₎− T _(2k−4)ũ′_(2k−4), and θ_((ρ) _(k−1) ₎ is a ρ_(k−1) ^(th) column in the matrix Θ.

With reference to the seventh possible implementation manner of the second aspect, in an eighth possible implementation manner of the second aspect, the second determining unit is further configured to determine a first row and a second row of A₂ as a first difference coefficient; and determine a (2k−3)^(th) row and a (2k−2)^(th) row of A_(2k−2) as the (k−1)^(th) difference coefficient, where:

${A_{{2k} - 2} = \begin{bmatrix} A_{({{2k} - 4})} \\ {\lambda_{{2k} - 3}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} \\ {{\left( f_{{{2k} - 3},{{2k} - 2}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} + {\lambda_{{2k} - 2}\left( {\overset{\sim}{a}}_{{{2k} - 4},:}^{H} \right)}^{*}} \end{bmatrix}},{and}$ $A_{2} = {\begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}.}$

With reference to the seventh or eighth possible implementation manner of the second aspect, in a ninth possible implementation manner of the second aspect, the apparatus further includes a fourth unit configured to determine F_(2k) by using formula

${F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}};$

and if 2≦k≦K, determine F_(2k) by using formula

${F_{2k} = \left\lbrack \begin{matrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{matrix} \right\rbrack},$

where reorder(w_(2k−2)) refers to exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of a vector w_(2k−2), and then calculating a conjugate of each item of the vector, where i=1, 2, . . . , k−1, and w_(2k−2)=F_(2k−2)ũ′_(2k−2); and the recovering unit is configured to recover the signal according to the F_(2 K).

In a third aspect, a signal reconstruction apparatus is provided, including a memory and a processor, where the memory stores program codes, and the processor is configured to invoke the program codes to perform the following operations: determining a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix, and determining a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns in the sensing matrix; determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix, and determining a k^(th) array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where 2≦k≦K; and recovering the original signal after determining the K^(th) array most correlative to the measured value of the original signal in the sensing matrix.

With reference to the third aspect, in a first possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where the (k−1)^(th) base difference is a vector or a vector set, and the (k−1)^(th) difference coefficient is a scalar or a scalar set or a set of vectors composed of multiple scalars.

With reference to the first possible implementation manner of the third aspect, in a second possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: if k=2, determining a first base difference; if k=3, determining the (k−1)^(th) base difference according to a first base difference; or if k≧4, determining the (k−1)^(th) base difference according to first to (k−2)^(th) base differences.

With reference to the second possible implementation manner of the third aspect, in a third possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: determining the first base difference t _(N−1) by using formula t ₁=λ₁·θ_((ρ) _(l) ₎; and determining the (k−1)^(th) base difference by using formula t _(k−1)=−λ_(k−1) T _(k−2)ũ_(k−2)+λ_(k−1)θ_(ρ) _(k−1) ₎, where λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_((ρ) _(l) ₎ is a ρ_(l) ^(th) column of Θ, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in Θ, Θ is a correlation matrix of the sensing matrix, ρ_(l) is a sequence number of a column in the sensing matrix, where the column is a column of a first array most correlative to the measured value of the original signal in the sensing matrix, T ₁=[ t ₁], T _(k−2)=[ T _(k−3) t _(k−2)], λ_(k−1)=1/√{square root over (σ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ_(k−2) ^(H)ũ_(k−2))}, ũ_(k−2)=( t _((ρ,:)) ^(H))^(H), θ_(ρ) _(k−1) _(,ρ) _(k−1) is an item in a ρ_(k−1) ^(th) row and a ρ_(k−1) ^(th) column in Θ, t _((ρ) _(k) _(,:)) ^(H) is a ρ_(k−1) ^(th) row in T _(k−2), and ρ_(k−1) is a sequence number of a column in the sensing matrix, where the column is a column of a (k−1)^(th) array most correlative to the measured value of the original signal in the sensing matrix.

With reference to the third possible implementation manner of the third aspect, in a fourth possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: determining the k^(th) difference coefficient a_(k) by using formula a_(k)=λ_(k)q_(ρ) _(k) ^(k−1).

With reference to the third or fourth possible implementation manner of the third aspect, in a fifth possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: determining F₁ by using formula F₁=[λ₁]; if 2≦k≦K, determining F_(k) by using formula

${F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}},$

where u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1); and recovering the signal according to the F_(K).

With reference to the fifth possible implementation manner of the third aspect, in a sixth possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: determining a weight coefficient column vector z_(K) by using formula z_(K)=F_(K)a_(K); determining x according to the weight coefficient column vector to make {circumflex over (x)}_(τ) _(k) =z_(k), where z_(k) is a k^(th) item of z_(K), and τ_(k) is a column in an array most correlative to the measured value of the original signal in the sensing matrix; and obtaining the original signal according to the x.

With reference to the second possible implementation manner of the third aspect, in a seventh possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: determining a first column and a second column of T ₂ as a first base difference; and determining a (2k−3)^(th) column and a (2k−2)^(th) column of T _(2k−2) as the (k−1)^(th) base difference, where

T ₂=[λ₁θ_((ρ) _(l) ₎ f _(1,2)θ_((ρ) _(l) ₎+λ₂×flipud(θ*_((ρ) _(l) ₎)],

T _(2k−2) =[ T _(2k−4)λ_(2k−3) {tilde over (t)} _(k)(f _(2k−3,2k−2) {tilde over (t)} _(k−1)+λ_(2k−2)×flipud({tilde over (t)}* _(k−1)))],

λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_(ρ) _(l) _(,ρ) _(l) represents an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in the sensing matrix Θ, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column in the sensing matrix Θ, f_(1,2)=−λ₂λ₁u″₁, λ₂=1/√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁ represents an item in the ρ_(l) ^(th) row and a (N−ρ_(l)+1)^(th) column in the sensing matrix Θ, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row in Q, Q is a matrix composed of correlations between the first residual error and the multiple columns in the sensing matrix, λ_(2k−3)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ′_(2k−4) ^(H)ũ′_(2k−4))}, ũ′_(2k−4)=( T _(2k−4)( ρ _(k−1),:))^(H), T _(2k−4)( ρ _(k−1),:) represents a ρ_(k−1) ^(th) row in the matrix T _(2k−4), f_(2k−3,2k−2)=−λ_(2k−2)λ_(2k−3)ũ″_(2k−3), λ_(2k−2)=1/√{square root over (1/λ_(2k−3) ²−|ũ″_(2k−3)|²)}, ũ″_(2k−3)=λ_(2k−3)(θ _(ρ) _(k−1) _(,ρ) _(k−1) − T _(2k−4)( ρ _(k−1),:)×ũ′_(2k−4))*, {tilde over (t)}_(k−1)=θ_((ρ) _(k−1) ₎− T _(2k−4)ũ′_(2k−4), and θ_((ρ) _(k−1) ₎ is a ρ_(k−1) ^(th) column in the matrix Θ.

With reference to the seventh possible implementation manner of the third aspect, in an eighth possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: determining a first row and a second row of A₂ as a first difference coefficient; and determining a (2k−3)^(th) row and a (2k−2)^(th) row of A_(2k−2) as the (k−1)^(th) difference coefficient, where:

${A_{{2k} - 2} = \begin{bmatrix} A_{({{2k} - 4})} \\ {\lambda_{{2k} - 3}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} \\ {{\left( f_{{{2k} - 3},{{2k} - 2}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} + {\lambda_{{2k} - 2}\left( {\overset{\sim}{a}}_{{{2k} - 4},:}^{H} \right)}^{*}} \end{bmatrix}},{and}$ $A_{2} = {\begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}.}$

With reference to the seventh or eighth possible implementation manner of the third aspect, in a ninth possible implementation manner of the third aspect, the processor is configured to invoke the program codes to perform the following operations: determining F₂ by using formula

${F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}};$

if 2≦k≦K, determining F_(2k) by using formula

${F_{2k} = \begin{bmatrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{bmatrix}},$

where reorder(w_(2k−2)) refers to exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of a vector w_(2k−2), and then calculating a conjugate of each item of the vector, where i=1, 2, . . . , k−1, and w_(2k−2)=F_(2k−2)ũ′_(2k−2); and recovering the signal according to the F_(2 K).

Based on the foregoing technical solutions, in the signal reconstruction method and apparatus that are provided in the embodiments of the present invention, a correlation between a first residual error and multiple columns in a sensing matrix is determined according to a measured value of an original signal and the sensing matrix; a first array most correlative to the measured value of the original signal in the sensing matrix is determined according to the correlation between the first residual error and the multiple columns in the sensing matrix; a correlation between a k^(th) residual error and the multiple columns in the sensing matrix is determined according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix, and a k^(th) array most correlative to the measured value of the original signal in the sensing matrix is determined according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where 2≦k≦K; and the original signal is recovered after the K^(th) array most correlative to the measured value of the original signal in the sensing matrix is determined. In this way, under the premise of ensuring proper recovery of the signal, the amount of calculation for reconstructing the signal can be reduced.

BRIEF DESCRIPTION OF THE DRAWINGS

To illustrate the technical solutions in the embodiments of the present invention more clearly, the following briefly introduces the accompanying drawings required for describing the embodiments or the prior art. The accompanying drawings in the following description show merely some embodiments of the present invention, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings without creative efforts.

FIG. 1 is a schematic flowchart of a signal reconstruction method according to an embodiment of the present invention;

FIG. 2 is a schematic flowchart of a signal reconstruction method according to another embodiment of the present invention;

FIG. 3 is a schematic flowchart of a signal reconstruction method according to another embodiment of the present invention;

FIG. 4 is a schematic flowchart of a signal reconstruction method according to an embodiment of the present invention;

FIG. 5 is a schematic flowchart of a signal reconstruction method according to an embodiment of the present invention;

FIG. 6 is a diagram of comparison between simulation results of a signal reconstruction method in the prior art and a signal reconstruction method in an embodiment of the present invention;

FIG. 7 is a schematic block diagram of a signal reconstruction apparatus according to an embodiment of the present invention;

FIG. 8 is a schematic block diagram of a signal reconstruction apparatus according to another embodiment of the present invention; and

FIG. 9 is a schematic block diagram of a signal reconstruction apparatus according to another embodiment of the present invention.

DETAILED DESCRIPTION

The following clearly and completely describes the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. The described embodiments are merely a part rather than all of the embodiments of the present invention. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

The technical solutions of the present invention are applicable to various communication systems, such as Global System for Mobile Communications (GSM), code division multiple access (CDMA) system, wideband code division multiple access wireless (WCDMA), general packet radio service (GPRS), long term evolution (LTE), and the like.

FIG. 1 is a schematic flowchart of a signal reconstruction method 100 according to an embodiment of the present invention. As shown in FIG. 1, the method 100 includes the following steps.

S110. Determine a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix, and determine a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns in the sensing matrix.

S120. Determine a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix, and determine a k^(th) array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where 2≦k≦K.

S130. Recover the original signal after determining the K^(th) array most correlative to the measured value of the original signal in the sensing matrix.

In the embodiment of the present invention, in S120, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix includes, from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where the k^(th) base difference is a vector or a vector set, and the (k−1)^(th) difference coefficient is a scalar or a scalar set or a set of vectors composed of multiple scalars.

In the embodiment of the present invention, before the from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix in S120 further includes: if k=2, determining a first base difference; if k=3, determining the (k−1)^(th) base difference according to a first base difference; or if k≧4, determining the (k−1)^(th) base difference according to first to (k−2)^(th) base differences.

Therefore, in the embodiment of the present invention, the correlation between the k^(th) residual error and the multiple columns in the sensing matrix is determined according to the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, and a column most correlative to the measured value of the original signal in the sensing matrix is further determined for recovering the signal. In this way, under the premise of ensuring proper recovery of the signal, the amount of calculation for reconstructing the signal can be reduced.

To enable clearer understanding of the present invention, the following describes in detail the signal reconstruction method in the embodiments of the present invention with reference to FIG. 2 to FIG. 7.

FIG. 2 is a schematic flowchart of a signal reconstruction method 200 according to an embodiment of the present invention. As shown in FIG. 2, the method 200 includes:

S201. Collect a measured value (non-adaptive linear projection) of an original signal, where the measured value may be represented by equation (2.1):

y=Φs  (2.1)

In the above equation, y is a measured value vector, Φ is a measurement matrix, and s is the original signal.

S202. After the measured value of the original signal is obtained, store or transmit the measured value.

S203. Determine the original signal to be reconstructed. First, perform an initialization process, where the initialization process may include the following steps.

(1) Set an initial value {tilde over (y)}=y of a residual error, that is, set the initial value of the residual error to be a measured value vector.

(2) Set an initial value of an estimated value of sparse expression x to {circumflex over (x)}=0_(N).

(3) Set a sensing matrix T=ΦΨ^(H), where the sensing matrix is an N×N matrix; and denote the modulus of columns in the sensing matrix T as

⁻⁽⁰⁾=[∥t₍₁₎∥₂ ∥t₍₂₎∥₂ . . . ∥t_((N))∥₂], where t_((i)) (i=1, 2, . . . , N) represents the i^(th) column of T, and ∥t_((i))∥₂ represents the modulus of the vector t_((i)).

⁻⁽⁰⁾ is set, where

⁻⁽⁰⁾=[1 2 . . . N]^(T) records a sequence number of each column of the sensing matrix, and is an initial value of an atom sequence number set to be selected. In subsequent k^(th) (k=1, 2, . . . , N) iteration, after an atom is selected into a base matrix, a sequence number of the atom is deleted from a vector

_(−(k−1)) correspondingly. An index of a selected column of the base matrix B is denoted as a column vector τ, and its initial value τ₀ is an empty vector.

(4) Calculate and store a correlation matrix Θ=T^(H)T of the sensing matrix, or calculate and store off-diagonal items (that is, items that are not on the diagonal) of a correlation matrix Θ=T^(H)T of the sensing matrix. It should be noted that, because the sensing matrix T is generally constant, or at least constant in a long time, it is not necessary to calculate the correlation matrix Θ=T^(H)T of the sensing matrix on every occasion of reconstructing the original signal. After the correlation matrix Θ=T^(H)T of the sensing matrix is calculated and stored, the stored correlation matrix Θ=T^(H)T is reusable in subsequent reconstruction of the original signal and the correlation matrix does not need to be calculated again.

S204. Determine a first column most correlative to the measured value of the original signal in the sensing matrix, which may include the following steps.

(1) Calculate a correlation between a first residual error and each column in the sensing matrix by using formula (2.2):

q _(N) =T _(N) ^(H) {tilde over (y)}=T _(N) ^(H) y  (2.2)

The first residual error is the initial value of the residual error, and is equal to the measured value vector. Meanwhile, the correlation between the first residual error and each column in the sensing matrix T_(N) is recorded by using {tilde over (q)}_(N)=q_(N).

(2) Find a sequence number ρ_(l) of a column with the maximum correlation value by using formula (2.3):

$\begin{matrix} {\rho_{1} = {\underset{i = 1}{\overset{\bullet^{-}{({k - 1})}}{argmax}}{q_{i}/\delta_{i}}}} & (2.3) \end{matrix}$

Therefore, it can be determined that the ρ_(l) ^(th) column in the sensing matrix is the first column most correlative to the measured value of the original signal in the sensing matrix.

S205. Determine intermediate values t _(N−1), T ₁, a₁, a₁, and F₁ for subsequent iteration or subsequent signal recovery, and update related variables.

First, an intermediate parameter λ₁ is calculated by using formula (2.4):

λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}  (2.4),

where, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column of

⁻⁽⁰⁾.

Then, intermediate parameters t _(N−1) (that is, a first base difference) and a₁ (that is, a first difference coefficient) are calculated respectively for subsequent iteration by using formulas (2.5) and (2.6):

t _(N−1)=λ₁·

_((ρ) _(l) ₎  (2.5)

a ₁=λ₁ {tilde over (q)} _(ρ) _(l)   (2.6)

In the above formulas,

_((ρ) _(l) ₎ is obtained by deleting the ρ_(l) ^(th) item θ_(ρ) _(l) _(,ρ) _(l) in the ρ_(l) ^(th) column θ_((ρ) _(l) ₎ of

⁻⁽⁰⁾, and {tilde over (q)}_(ρ) _(l) is the ρ_(l) ^(th) item of {tilde over (q)}_(N).

(3) Calculate parameters T ₁ and a₁ for subsequent iteration by using the following formulas (2.7) and (2.8):

T ₁ =[ t _(N−1)]  (2.7)

a ₁ =[a ₁]  (2.8)

(4) Calculate a parameter F₁ for subsequent iteration by using the following formula (2.9):

F ₁=[λ₁]  (2.9)

(5) According to τ_(k−1), obtain an index τ_(k) of each column of the base matrix B_(k); and according to an index

_(−(k−1)) of each column of

_(−(k−1)) and the modulus

_(−(k−1)) of each column, obtain an index

_(−(k)) of each column of

_(−(k)) and the modulus

_(−(k)) of each column respectively.

τ_(k)=[τ_(k−1) ^(T) π_(ρ) _(k) ]^(T) is obtained, where π_(ρ) _(k) is the ρ_(k) ^(th) item in

_(−(k−1)); the ρ_(k) ^(th) item π_(ρ) _(k) is deleted from

_(−(k−1)) to obtain

_(−(k)) for subsequent iteration; and the ρ_(k) ^(th) item is deleted from

_(−(k−1)) to obtain

_(−(k)) for subsequent iteration. It should be noted that, the current k is equal to 1.

(6) Update

⁻⁽⁰⁾,

⁻⁽⁰⁾, and

⁻⁽⁰⁾ to

⁻⁽¹⁾,

⁻⁽⁰⁾, and

⁻⁽¹⁾ respectively, that is, delete the ρ_(l) ^(th) item {tilde over (q)}_(ρ) _(l) from

⁻⁽⁰⁾ to obtain

⁻⁽¹⁾; delete the ρ_(l) ^(th) item from

⁻⁽⁰⁾ to obtain

⁻⁽¹⁾; and delete the ρ_(l) ^(th) row and the ρ_(l) ^(th) column from

⁻⁽⁰⁾ to obtain

⁻⁽¹⁾.

S206. Determine a k^(th) column most correlative to the measured value of the original signal in the sensing matrix, where an initial value of k is 2, which may include the following steps.

(1) Calculate, by using formula (2.10), a correlation

_(−(k−1)) between a k^(th) residual error and each column in

_(−(k−1)) (that is,

−(k−1) columns to be selected in the sensing matrix T), that is:

_(−(k−1))=

_(−(k−2))−

_(−(k−1)) a _(k−1)  (2.10)

In the above formula, the vector

_(−(k−1)) is a (k−1)^(th) base difference, and the scalar) a_(k−1) is a (k−1)^(th) difference coefficient, which have been obtained in preceding steps.

(2) Determine a sequence number ρ_(k) of a column with the maximum correlation value by using formula (2.11):

$\begin{matrix} {\rho_{k} = {\underset{i = 1}{\overset{\bullet^{-}{({k - 1})}}{argmax}}{q_{i}/\delta_{i}}}} & (2.11) \end{matrix}$

In the above formula, q_(i) is an i^(th) item of

_(−(k−1)), and δ_(i) is an i^(th) item of

_(−(k−1)).

Therefore, it can be determined that, among columns of

_(−(k−1)) (that is, the

−(k−1) column to be selected in the sensing matrix, and in other words, the sensing matrix cleared of k−1 columns selected into the base matrix), the ρ_(k) ^(th) column is a column most correlative to the measured value of the original signal in

_(−(k−1)).

S207. Determine intermediate values

_(−(k)), a_(k), T _(k), a_(k), and F_(k) for subsequent iteration or subsequent signal recovery, and update related variables.

(1) From the previously calculated T _(k−1), obtain the ρ_(k) ^(th) row t _((p) _(k) _(,:)) ^(H) to make ũ_(k−1)=( t _((ρ) _(k) _(,:)) ^(H))^(H); and then, from

_(−(k−1)), obtain an item θ_(ρ) _(k) _(,ρ) _(k) in the ρ_(k) ^(th) row and the ρ_(k) ^(th) column, so as to determine λ_(k) by using the following formula (2.12):

λ_(k)=1/√{square root over (θ_(ρ) _(k) _(,ρ) _(k) −ũ _(k−1) ^(H) ũ _(k−1))}  (2.12)

(2) Calculate intermediate values

_(−(k)) (that is, a k^(th) base difference) and a_(k) (that is, a k^(th) difference coefficient) for subsequent iteration by using the following formulas (2.13) and (2.14):

_(−(k))=−λ_(k)

ũ _(k−1)λ_(k)

_((ρ) _(k) ₎  (2.13)

a _(k)=λ_(k)({tilde over (q)} _(ρ) _(k) −ũ _(k−1) ^(H) a _(k−1))  (2.14)

In the above formulas,

is obtained by deleting the ρ_(k) ^(th) row t _((ρ) _(k) _(,:)) ^(H) from T _(k−1),

_((ρ) _(k) ₎ is obtained by deleting the ρ_(k) ^(th) item θ_(ρ) _(k) _(,ρ) _(k) from the ρ_(k) ^(th) column θ_((ρ) _(k) ₎ of

_(−(k−1)), and {tilde over (q)}_(ρ) _(k) is the ρ_(k) ^(th) item of

_(−(k−1)). In addition, a_(k) may be calculated by using a_(k)=λ_(k)

, where

is the ρ_(k) ^(th) item of

_(−(k−1)).

(3) Obtain intermediate parameters T _(k) and a_(k) for subsequent iteration by using the following formulas (2.15) and (2.16):

T _(k)=[

_(−(k))]  (2.15)

a _(k) =[a _(k−1) ^(T) a _(k)]^(T)  (2.16)

(4) First, calculate u_(k−1) by using formula u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1), and then calculate a parameter F_(k) for subsequent iteration by using the following formula (2.17):

$\begin{matrix} {F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}} & (2.17) \end{matrix}$

It can be easily seen that, u_(k−1) and F_(k) are not used in iterations until in recovering the original signal (that is, in S208). Therefore, it is not necessary to calculate u_(k−1) and F_(k) in every iteration, thereby reducing the amount of calculation in each iteration and improving the speed of each iteration. F_(k) may also be calculated by other methods.

(5) According to τ_(k−1), obtain an index τ_(k) of each column of the base matrix B_(k); and according to an index

_(−(k−1)) of each column of

_(−(k−1)) and the modulus

_(−(k−1)) of each column, obtain an index

_(−(k)) of each column of

_(−(k)) and the modulus

_(−(k)) of each column respectively.

τ_(k)=[τ_(k−1) ^(T) π_(ρ) _(k) ]^(T) is obtained, where π_(ρ) _(k) is the ρ_(k) ^(th) item in

_(−(k−1)); the ρ_(k) ^(th) item π_(ρ) _(k) is deleted from

_(−(k−1)) to obtain

_(−(k)) for subsequent iteration; and the ρ_(k) ^(th) item is deleted from

_(−(k−1)) to obtain

_(−(k)) for subsequent iteration.

(6) Update

_(−(k−1)),

_(−(k−1)), and

_(−(k−1)) to

_(−(k)),

_(−(k−1)), and

_(−(k)) respectively, that is, delete the ρ_(k) ^(th) item {tilde over (q)}_(ρ) _(k) from

_(−(k−1)) to obtain

_(−(k)) for subsequent iteration; delete the ρ_(k) ^(th) item from

_(−(k−1)) to obtain

_(−(k−1)) for subsequent iteration; and delete the ρ_(k) ^(th) row and the ρ_(k) ^(th) column from

_(−(k−1)) to obtain

_(−(k)) for subsequent iteration.

(7) If k<K−1, the process goes back to S206 and S207 after the value of k increases by 1; if k=K−1, the process goes back to S206 and S207 after the value of k increases by 1, and subsequently S208 is performed. When S207 is performed, it is necessary only to calculate a_(K), a_(K), and F_(K) for subsequent signal recovery.

S208. Recover the original signal, mainly including the following steps.

(1) Calculate, by using the following formula (2.18), a column vector z_(K) composed of weight coefficients of K columns selected in the base matrix B:

z _(K) =F _(K) a _(K)  (2.18)

(2) The initial value of the estimated value of x is {circumflex over (x)}=0_(N). In {circumflex over (x)}, let the τ_(k) ^(th) item be {circumflex over (x)}_(τ) _(k) =z_(k) (k=1, 2, . . . , K), where z_(k) is the k^(th) item of z_(K), and τ_(k) is the k^(th) item of the vector τ_(K).

(3) Determine the original signal by using the following formula (2.19):

ŝ=ω ^(H) {circumflex over (x)}  (2.19)

The original signal ŝ is therefore obtained.

FIG. 3 is a schematic flowchart of a signal reconstruction method 300 according to an embodiment of the present invention. As shown in FIG. 3, the method 300 includes the following steps.

S301. Collect a measured value (non-adaptive linear projection) of an original signal, where the measured value may be represented by equation (3.1):

y=Φs  (3.1)

In the above equation, y is a measured value vector, Φ is a measurement matrix, and s is the original signal.

S302. After the measured value of the original signal is obtained, store or transmit the measured value.

S303. Determine the original signal to be reconstructed. First, perform an initialization process, where the initialization process may include the following steps:

(1) Set an initial value {tilde over (y)}=y of a residual error, that is, set the initial value of the residual error to be a measured value vector.

(2) Set an initial value of an estimated value of sparse expression x to {circumflex over (x)}=0_(N).

(3) Set a sensing matrix T=ΦΨ^(H), where the sensing matrix is an N×N matrix; and denote the modulus of columns in the sensing matrix T as δ=[∥t₍₁₎∥₂ ∥t₍₂₎∥₂ . . . ∥t_((N))∥₂], where t_((i)) (i=1, 2, . . . , N) represents the i^(th) column of T, and ∥t_((i))∥₂ represents the modulus of the vector t_((i)).

An index of a selected column of the base matrix B is denoted as a column vector τ, and its initial value τ₀ is an empty vector.

(4) Calculate and store a correlation matrix Θ=T^(H)T of the sensing matrix, or calculate and store off-diagonal items (that is, items that are not on the diagonal) of a correlation matrix Θ=T^(H)T of the sensing matrix. It should be noted that, because the sensing matrix T is generally constant, or at least constant in a long time, it is not necessary to calculate the correlation matrix Θ=T^(H)T of the sensing matrix on every occasion of reconstructing the original signal. After the correlation matrix Θ=T^(H)T of the sensing matrix is calculated and stored, the stored correlation matrix Θ=T^(H)T is reusable in subsequent reconstruction of the original signal and the correlation matrix does not need to be calculated again.

S304. Determine a first column most correlative to the measured value of the original signal in the sensing matrix, which may include the following steps:

(1) Calculate a correlation between a first residual error and each column in the sensing matrix by using formula (3.2):

q ⁰ =T _(N) ^(H) {tilde over (y)}=T _(N) ^(H) y  (3.2)

The first residual error is the initial value of the residual error, and is equal to the measured value vector.

(2) Find a sequence number ρ_(l) of a column with the maximum correlation value by using formula (3.3):

$\begin{matrix} {{\rho_{1} = {\underset{i = 1}{\overset{N}{argmax}}{q_{i}^{0}/\delta_{i}}}},} & (3.3) \end{matrix}$

where, q_(i) ⁰ is an i^(th) item of q⁰. Therefore, it can be determined that the ρ_(l) ^(th) column in the sensing matrix is the first column most correlative to the measured value of the original signal in the sensing matrix.

S305. Determine intermediate values t ₁, T ₁, a₁, a₁, and F₁ for subsequent iteration or subsequent signal recovery, and update related variables, including the following steps.

(1) Calculate an intermediate parameter λ₁ by using formula (3.4):

λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}  (3.4),

where, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column of Θ.

(2) Calculate intermediate parameters t ₁ (that is, a first base difference) and a₁ (that is, a first difference coefficient) respectively for subsequent iteration by using formulas (3.5) and (3.6):

t ₁=λ₁·θ_((ρ) _(l) ₎  (3.5),

a ₁=λ₁ {tilde over (q)} _(ρ) _(l)   (3.6),

where, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column of Θ, and {tilde over (q)}_(ρ) _(l) is a ρ_(l) ^(th) item of {tilde over (q)}_(N).

(3) Calculate parameters T ₁ and a₁ for subsequent iteration by using the following formulas (3.7) and (3.8):

T ₁ =[ t ₁]  (3.7)

a ₁ =[a ₁]  (3.8)

(4) Calculate a parameter F₁ for subsequent iteration by using the following formula (3.9):

F ₁=[λ₁]  (3.9)

(5) According to τ_(k−1), obtain an index τ_(k) of each column of the base matrix B_(k).

τ_(k)=[τ_(k−1) ^(T) ρ_(k)]^(T) is therefore obtained. It should be noted that, the current k is equal to 1.

S306. Determine a k^(th) column most correlative to the measured value of the original signal in the sensing matrix, where an initial value of k is 2, which may include the following steps.

(1) Calculate a correlation q^(k−1) between a k^(th) residual error and each column in the sensing matrix T by using formula (3.10):

q ^(k−1) =q ^(k−2) − t _(k−1) a _(k−1)  (3.10)

In the above formula, the vector t _(k−1) is a (k−1)^(th) base difference, and the scalar a_(k−1) is a (k−1)^(th) difference coefficient, which have been obtained in preceding steps.

(2) Determine a sequence number ρ_(k) of a column with the maximum correlation value by using formula (3.11):

$\begin{matrix} {{\rho_{k} = {\underset{i = 1}{\overset{N}{argmax}}{{q_{i}^{k - 1}}/\delta_{i}}}},} & (3.11) \end{matrix}$

where, q_(i) ^(k−1) is an i^(th) item of q^(k−1), and δ_(i) is an i^(th) item of δ.

Therefore, it can be determined that, among columns of T, the ρ_(k) ^(th) column is a column most correlative to the measured value vector of the original signal in T.

S307. Determine intermediate values t _(k), a_(k), T _(k), a_(k), and F_(k) for subsequent iteration or subsequent signal recovery, and update related variables.

(1) From the previously calculated T _(k−1), obtain the ρ_(k) ^(th) row t _((ρ) _(k) _(,:)) ^(H) to make ũ_(k−1)=( t _((ρ) _(k) _(,:)) ^(H))^(H); and then, from Θ, obtain an item θ_(ρ) _(k) _(,ρ) _(k) in the ρ_(k) ^(th) row and the ρ_(k) ^(th) column, so as to determine λ_(k) by using the following formula (3.12):

λ_(k)=1/√{square root over (θ_(ρ) _(k) _(,ρ) _(k) −ũ _(k−1) ^(H) ũ _(k−1))}  (3.12)

(2) Calculate intermediate values t _(k) (that is, a k^(th) base difference) and a_(k) (that is, a k^(th) difference coefficient) for subsequent iteration by using the following formulas (3.13) and (3.14):

t _(k)=−λ_(k) T _(k−1) ũ _(k−1)+λθ_((ρ) _(k) ₎  (3.13),

a _(k)=λ_(k) q _(ρ) _(k) ^(k−1)  (3.14),

where, T _(k−1) is obtained in the previous iteration, θ_((ρ) _(k) ₎ is the ρ_(k) ^(th) column of Θ, and q_(ρ) _(k) ^(k−1) is the ρ_(k) ^(th) item of q^(k−1).

(3) Obtain intermediate parameters T _(k) and a_(k) for subsequent iteration by using the following formulas (3.15) and (3.16):

T _(k) =[ T _(k−1) t _(k)]  (3.15)

a _(k) [a _(k−1) ^(T) a _(k)]^(T)  (3.16)

(4) According to τ_(k−1), obtain an index τ_(k)=[τ_(k−1) ^(T) ρ_(k)]^(T) of each column of the base matrix B_(k).

(5) First, calculate u_(k−1) by using formula u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1) and then calculate a parameter F_(k) for subsequent iteration by using the following formula (3.17):

$\begin{matrix} {F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}} & (3.17) \end{matrix}$

It can be easily seen that, u_(k−1) and F_(k) are not used in iterations until in recovering the original signal (that is, in S208). Therefore, it is not necessary to calculate u_(k−1) and F_(k) in every iteration, thereby reducing the amount of calculation in each iteration and improving the speed of each iteration. F_(k) may also be calculated by other methods than the method disclosed in the present invention.

It should be understood that, if k<K−1 (generally, K is smaller than or equal to K_sparse), the process goes back to S306 and S307 after the value of k increases by 1; if k=K−1, the process goes back to S306 and S307 after the value of k increases by 1, and subsequently S308 is performed. When S307 is performed, it is necessary only to calculate a_(K), a_(K), and F_(K) for subsequent signal recovery.

S308. Recover the original signal, mainly including the following steps.

(1) Calculating, by using the following formula (3.18) a column vector z_(K) composed of weight coefficients of K columns selected in the base matrix B:

z _(K) =F _(K) a _(K)  (3.18)

(2) The initial value of the estimated value of x is {circumflex over (x)}=0_(N). In {circumflex over (x)}, let the τ_(k) ^(th) item be {circumflex over (x)}_(τ) _(k) =z_(k) (k=1, 2, . . . , K), where z_(k) is the k^(th) item of z_(K), and τ_(k) is the k^(th) item of the vector τ_(K).

(3) Determine the original signal by using the following formula (3.19):

ŝ=Ψ ^(H) {circumflex over (x)}  (3.19)

The original signal ŝ is therefore obtained.

The method according to the present invention is applied to many communication systems or signal processing systems. For example, the technical solutions of the present invention are applicable to a system described in the document [1] (“From Theory to Practice: Sub-Nyquist Sampling of Sparse Wideband Analog Signals,” IEEE JOURNAL OF SELECTED TOPICS IN SIGNAL PROCESSING, VOL. 4, NO. 2, APRIL 2010). For ease of understanding, the system is described in detail as follows with reference to FIG. 3.

As shown in FIG. 4, an original signal x(t) includes Num_band narrowband signals (a positive frequency counts as a narrow-band signal, and a negative frequency counts as a narrow-band signal); and there are m channels in total, and each channel processes and collects samples of analog signals x(t) respectively. In each channel, a pseudo-random sequence is multiplied by the analog signal x(t) first, a result of the multiplication passes through a low-pass filter h(t), and then a low-rate analog-to-digital converter (ADC) collects samples of the signals. Subsequently, according to sample sequences y1[n], y2[n], . . . , ym[n], (n=1, 2, . . . , Num_sample) obtained by the channels, an original signal x is recovered through a signal reconstruction method. A sample sequence of the i^(th) channel is represented as yi[n], where n=1, 2, . . . , and Num_sample represents an n^(th) sample value.

The n^(th) sample value on all the m channels is denoted as a column vector {right arrow over (y)}[n]:

${{\overset{->}{y}\lbrack n\rbrack} = \begin{bmatrix} {y_{1}\lbrack n\rbrack} \\ {y_{2}\lbrack n\rbrack} \\ \vdots \\ {y_{m}\lbrack n\rbrack} \end{bmatrix}},{{thereby}\mspace{14mu} {calculating}}$ $Q = {\sum\limits_{n = 1}^{Num\_ sample}{{\overset{->}{y}\lbrack n\rbrack} \times {{{\overset{->}{y}}^{T}\lbrack n\rbrack}.}}}$

The number of nonzero positive eigenvalues of Q is determined as Num_positive_eigenvalue. In practice, the number of eigenvalues that is greater than a very small positive number (such as 1×10⁻⁸) is statisticized. Num_positive_eigenvalue or (2×Num_band), whichever is smaller, is selected and denoted as Num_valid_eigenvalue.

Num_valid_eigenvalue=L largest eigenvalues are selected in the eigenvalues of Q, and denoted as ξ_(j) (j=1, 2, . . . , Num_valid_eigenvalue). Meanwhile, Num_valid_eigenvalue eigenvectors corresponding to the Num_valid_eigenvalue eigenvalues respectively are selected and denoted as v_(j) (j=1, 2, . . . , Num_valid_eigenvalue).

Multiple y vectors in an orthogonal matching pursuit method are Y=[v₁√{square root over (ξ₁)} v₂√{square root over (ξ₂)} . . . v_(L)√{square root over (ξ_(L))}]=[y₁ y₂ . . . y_(L)], and Y=TX, where Y=[y₁ y₂ . . . y_(L)], X=[x₁ x₂ . . . X_(L)]. That is equivalent to having multiple constraint conditions, that is, y_(j)=Tx_(j), where j=1, 2, . . . , L.

In all x_(j) (j=1, 2, . . . , L), positions of nonzero items are the same. Therefore, in the method given in the reference document [1], for each constraint condition y_(j)=Tx_(j) (j=1, 2, . . . , L), the orthogonal matching pursuit method is applied to perform signal recovery to calculate the estimation {circumflex over (x)}_(j) of x_(j), but step 2 in the prior art is modified, so that L constraint conditions y_(j)=Tx_(j) (j=1, 2, . . . , L) determine the same column (that is, atom).

For each constraint condition y_(j)=Tx_(j), step 1 in the prior art is applied in the reference document, that is, a correlation between a k^(th) residual error and each column in a sensing matrix cleared of k−1 arrays is calculated by using formula

_(−(k−1),j)=

_((−(k−1)){tilde over (y)}_(j), where the subscript j represents a residual error {tilde over (y)} and correlation

_(−(k−1)) corresponding to the constraint condition y_(j)=Tx_(j); and a sequence number of a column with the maximum correlation value is determined by using formula (1.3b):

$\begin{matrix} {\rho_{k} = {{\underset{i = 1}{\overset{\bullet^{-}{({k - 1})}}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{\bullet^{-}{({k - 1})}}}^{2}} \right)}/{\delta_{i}}^{2}}} & \left( {1.3b} \right) \end{matrix}$

In the above formula,

is an i^(th) item of

_(−(k−1),j). For ease of description, let:

_(−(k−1))=[

_(−(k−1),1)

_(−(k−1),2) . . .

_(−(k−1),L)].

However, the method disclosed in the reference document is rather complicated in implementing the orthogonal matching pursuit method, and therefore, the method of the present invention may be applied to implement the orthogonal matching pursuit method to reduce the complexity.

FIG. 5 is a schematic flowchart of a signal reconstruction method 400 according to an embodiment of the present invention. A dictionary T with M rows and N columns fulfills: an i^(th) column and an (N−i+1)^(th) column are mutually conjugate (i=1, 2, . . . , N/2), and all items in Y=[y₁ y₂ . . . y_(L)] are real numbers.

As shown in FIG. 4, the method 400 includes the following steps.

S401. Obtain, by using the method disclosed in the reference document [1], a measured value (non-adaptive linear projection) Y=[y₁ y₂ . . . y_(L)] of an original signal and a corresponding dictionary (that is, sensing matrix) T, where the dictionary T with M rows and N columns fulfills: an i^(th) column and a (N−i+1)^(th) column are mutually conjugate, and all items in Y=[y₁ y₂ . . . y_(L)] are real numbers.

S402. After the measured value of the original signal is obtained, store or transmit the measured value.

S403. Determine the original signal to be reconstructed. First, perform an initialization process, where the initialization process may include the following steps.

(1) Set an initial value {tilde over (y)}_(j)=y_(j) of a residual error, where j=1, 2, . . . , L, that is, set the initial value of the residual error to be a measured value vector.

(3) Set the sensing matrix T, where the sensing matrix is an N×N matrix; and denote the square of the modulus of columns in the sensing matrix T as

⁻⁽⁰⁾=[∥t₍₁₎∥₂ ² ∥t₍₂₎∥₂ ² . . . ∥t_((N))∥₂ ²], where t_((i)) (i=1, 2, . . . , N) represents the i^(th) column of T, and ∥t_((i))∥₂ represents the modulus of the vector t_((i)); set

⁻⁽⁰⁾, where

⁻⁽⁰⁾=[1 2 . . . N]^(T) records a sequence number of each column of the sensing matrix, and is an initial value of an atom sequence number set to be selected. An index of a selected column of a base matrix B is denoted as a column vector τ, and its initial value τ₀ is an empty vector.

(4) Calculate and store a correlation matrix Θ=T^(H)T of the sensing matrix, or calculate and store off-diagonal items (that is, items that are not on the diagonal) of a correlation matrix Θ=T^(H)T of the sensing matrix. It should be noted that, because the sensing matrix T is generally constant, or at least constant in a long time, it is not necessary to calculate the correlation matrix Θ=T^(H)T of the sensing matrix on every occasion of reconstructing the original signal. After the correlation matrix Θ=T^(H)T of the sensing matrix is calculated and stored, the stored correlation matrix Θ=T^(H)T is reusable in subsequent reconstruction of the original signal and the correlation matrix does not need to be calculated again.

S404. Determine a first array most correlative to the measured value of the original signal in the sensing matrix, which may include the following steps.

(1) Calculate a correlation between a first residual error and each column in the sensing matrix by using formula (4.1):

q _(N,j) =T _(N) ^(H) {tilde over (y)} _(j) =T _(N) ^(H) y _(j)  (4.1)

In the above formula, j=1, 2, . . . , L. The first residual error is the initial value of the residual error, and is equal to the measured value vector. For ease of description, subsequently, let

_(−(2k−2))=[

_(−(2k−2),1)

_(−(2k−2),2) . . .

_(−(2k−2),L)]. It can be easily seen that,

_(−(2k−2)) is always a matrix with

−(2k−2) rows and L columns, and when k=1,

_(−(2k−2)) is its initial value Q_(N)=[q_(N,1) q_(N,2) . . . q_(N,L)]. Because the i^(th) column and the (N+1−i)^(th) column of T_(N) are conjugately symmetric, only a correlation between the first residual error and about a half of columns of the sensing matrix T_(N) needs to be calculated in practice, for example, a correlation between the first residual error and the first to

$\left\lceil \frac{N}{2} \right\rceil^{th}$

columns of the sensing matrix T_(N) is calculated, where ┌a┐ represents an integer greater than or equal to a and contiguous to a.

(2) Find a sequence number ρ_(l) of a column with the maximum correlation value by using formula (4.2):

$\begin{matrix} {\rho_{1} = {{\underset{i = 1}{\overset{N}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{N}}^{2}} \right)}/\delta_{i}^{\prime}}} & (4.2) \end{matrix}$

In the above formula, q_(i,j) ^(N) is an i^(th) item of q_(N,j), and δ′_(i) is an i^(th) item of

⁻⁽⁰⁾. If, in the previous step, only the correlation between the first residual error and the first to

$\left\lceil \frac{N}{2} \right\rceil^{th}$

columns of the sensing matrix T_(N) is calculated, the formula applied here is:

$\rho_{1} = {{\underset{i = 1}{\overset{\lceil{N/2}\rceil}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{N}}^{2}} \right)}/{\delta_{i}^{\prime}.}}$

Therefore, it can be determined that the ρ_(l) ^(th) column in the sensing matrix is the first column most correlative to the measured value of the original signal in the sensing matrix. Meanwhile, it is further determined that the ( ρ _(l)=N−ρ_(l)+1)^(th) column in the sensing matrix is also a column most correlative to the measured value of the original signal in the sensing matrix. This is because the dictionary T fulfills that the i^(th) column and the (N−i+1)^(th) column are mutually conjugate.

S405. Determine intermediate values for subsequent iteration or subsequent signal recovery, and update related variables.

First, intermediate parameters are calculated by using formula λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, where θ_(ρ) _(l) _(,ρ) _(l) is an item in the ρ_(l) ^(th) row and the ρ_(l) ^(th) column in the matrix

⁻⁽⁰⁾; then u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, λ₂=1/√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, and f_(1,2)=−λ₂λ₁u″₁ are calculated; and finally, F₂ for subsequent iteration is obtained by using formula (4.3):

$\begin{matrix} {F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}} & (4.3) \end{matrix}$

(2) Let q_(ρ) _(l) _(,:) ^(H)=Q_(N)(ρ_(l),:), that is, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row of Q_(N), and then obtain an intermediate parameter A₂ for subsequent iteration by using formula (4.4):

$\begin{matrix} {A_{2} = \begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}} & (4.4) \end{matrix}$

In the above formula, the matrix A₂ may be represented as

${A_{2} = \begin{bmatrix} a_{1,:}^{H} \\ a_{2,:}^{H} \end{bmatrix}},$

where a_(1,:) ^(H) and a_(2,:) ^(H) represent the first row and the second row of the matrix A₂ respectively, and a_(1,:) ^(H) and a_(2,:) ^(H) make up a first difference coefficient.

(3) Let an index of a selected atom of the base matrix be τ₂=[ρ_(l) ρ _(l)]^(T)=[ρ_(l) N−ρ_(l)+1]^(T); and delete the ρ_(l) ^(th) item and the (N−ρ_(l)+1)^(th) item from δ′_(N) and an atom index π_(N) to be selected respectively to obtain δ′_(N−2) and a π_(N−2) for subsequent iteration.

(4) Delete the ρ_(l) ^(th) row and the (N−ρ_(l)+1)^(th) row from

⁻⁽⁰⁾ to obtain

⁻⁽⁰⁾; then save the ρ_(l) ^(th) column of

⁻⁽⁰⁾, denote it as θ′_((ρ) _(l) ₎, that is, θ′_((ρ) _(l) ₎=

⁻⁽⁰⁾ (:,ρ_(l)); and subsequently, delete the ρ_(l) ^(th) column and the (N−ρ_(l)+1)^(th) column from

⁻⁽⁰⁾ to obtain

⁻⁽²⁾ for subsequent iteration; and finally, obtain an intermediate parameter T _(N−2) (that is, T _(N−(2k−2)) when k=2) for subsequent iteration by using formula (4.5):

T _(N−2)=[λ₁θ′_((ρ) _(l) ₎ f _(1,2)θ′_((ρ) _(l) ₎+λ₂×flipud(θ′*_((ρ) _(l) ₎)]  (4.5)

In the above formula, flipud refers to reversing order of a column vector, that is, changing the first item of the column vector to the last item, changing the second item to the last item but one, . . . , and changing the last item to the first item; and the matrix T _(N−2) may be represented as T _(N−2)=[ t ₁ t ₂], where t ₁ and t ₂ represent the first column and the second column of the matrix T _(N−2) respectively, and t ₁ and t ₂ make up a first base difference.

(5) Delete the ρ_(l) ^(th) row and the (N−ρ_(l)+1)^(th) row from the matrix

⁻⁽⁰⁾ to obtain

⁻⁽²⁾ for next iteration; and use

⁻⁽²⁾=

⁻⁽²⁾ to record the correlation between the first residual error and each column in the sensing matrix T_(N−2).

S306. Determine a k^(th) array most correlative to the measured value of the original signal in the sensing matrix, where an initial value of k is 2, which may include the following steps.

(1) Calculate, by using formula (4.6), a correlation

_(−(2k−2)) between a k^(th) residual error and each column in

_(−(2k−2)) (that is,

−(2k−2) columns to be selected in the sensing matrix T), that is:

$\begin{matrix} {Q_{\bullet^{-}{({{2k} - 2})}} = {Q_{\bullet^{-}{({{2k} - 2})}}^{\prime} - {\begin{bmatrix} {\overset{\_}{t}}_{{2k} - 3} & {\overset{\_}{t}}_{{2k} - 2} \end{bmatrix}\begin{bmatrix} a_{{{2k} - 3},:}^{H} \\ a_{{{2k} - 2},:}^{H} \end{bmatrix}}}} & (4.6) \end{matrix}$

In the above formula, the vectors t _(2k−3) and t _(2k−2) make up a set [ t _(2k−3) t _(2k−2)], that is, a matrix [ t _(2k−3) t _(2k−2)], which is a (k−1)^(th) base difference; the vectors a_(2k−3,:) ^(H) and a_(2k−2,:) ^(H) make up a set

$\begin{bmatrix} a_{{{2k} - 3},:}^{H} \\ a_{{{2k} - 2},:}^{H} \end{bmatrix},$

which is a (k−1)^(th) difference coefficient; and the vectors a_(2k−3,:) ^(H) and a_(2k−2,:) ^(H) themselves are made up of multiple scalars. The (k−1)^(th) base difference and the (k−1)^(th) difference coefficient have been obtained in preceding steps.

Because the i^(th) column and the (N−2k+3−i)^(th) column of

_(−(2k−2)) are conjugately symmetric, only the correlation between the first residual error and about a half of columns of the sensing matrix

_(−(2k−2)) needs to be calculated in practice, for example, a correlation between the first residual error and the first to

$\left\lceil \frac{N - \left( {{2k} - 2} \right)}{2} \right\rceil^{th}$

columns of the sensing matrix

_(−(2k−2)). It is apparent to a person skilled in the art that, when only the correlation between the first residual error and the first to

$\left\lceil \frac{N - \left( {{2k} - 2} \right)}{2} \right\rceil^{th}$

columns of the sensing matrix

_(−(2k−2)) is calculated, it is necessary only to use the (k−1)^(th) base difference, that is, the first to

$\left\lceil \frac{N - \left( {{2k} - 2} \right)}{2} \right\rceil^{th}$

rows of the matrix [ t _(2k−3) t _(2k−2)].

(2) Determine a sequence number ρ_(k) of a column with the maximum correlation value by using formula (4.7):

$\begin{matrix} {{\rho_{k} = {{\underset{i = 1}{\overset{N - {({{2k} - 2})}}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{N - {({{2k} - 2})}}}^{2}} \right)}/{\delta_{i}}^{2}}},} & (4.7) \end{matrix}$

where, q_(i,j) ^(N−(2k−2)) is an item in an i^(th) row and a j^(th) column of the matrix

_(−(2k−2)); then obtain a sequence number ρ _(k)=N−(2k−2)+1−ρ_(k) of another column with the maximum correlation value. If, in the previous step, only the correlation between the first residual error and the first to

$\left\lceil \frac{N - \left( {{2k} - 2} \right)}{2} \right\rceil^{th}$

columns of the sensing matrix

_(−(2k−2)) is calculated, the formula applied here is:

$\rho_{k} = {{\underset{i = 1}{\overset{\lceil{{({N - {2k} + 2})}/2}\rceil}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{N - {({{2k} - 2})}}}^{2}} \right)}/{{\delta_{i}}^{2}.}}$

S407. Determine intermediate values for subsequent iteration or subsequent signal recovery, and update related variables.

(1) Let a vector ũ′_(2k−2) be equal to a conjugate transposition of the ρ_(k) ^(th) row of the matrix

_(−(2k−2)), that is, ũ′_(2k−2)=(

_(−(2k−2))(ρ_(k),:))^(H), and then calculate λ_(2k−1)=1/√{square root over (θ_(ρ) _(k) _(,ρ) _(k) −ũ′_(2k−2) ^(H)ũ′_(2k−2))} and w_(2k−2)=F_(2k−2)ũ′_(2k−2), where it should be noted that, in the k^(th) iteration, θ_(i,j) represents an item in the i^(th) row and the j^(th) column of the matrix

_(−(2k−2)); calculate ũ″_(2k−1)=λ_(2k−1)(θ _(ρ) _(k) _(,ρ) _(k) − T _(N−(2k−2))( ρ _(k),:)×ũ′_(2k−2))*, where T _(N−(2k−2))( ρ _(k),:) represents the ρ_(k) ^(th) row of the matrix T _(N−(2k−2)), so that

${\overset{\sim}{u}}_{{2k} - 1}^{''} = \begin{bmatrix} \left( {{\overset{\_}{T}}_{2}\left( {{\overset{\_}{\rho}}_{k},:} \right)} \right)^{H} \\ {\overset{\sim}{u}}_{{2k} - 1}^{''} \end{bmatrix}$

is obtained; and then calculate λ_(2k)=1/√{square root over (θ_(ρ) _(k) _(,ρ) _(k) −(ũ″_(2k−1))^(H)ũ″_(2k−1))} and f_(2k−1,2k)=−λ_(2k)λ_(2k−1)ũ″_(2k−1); and finally, obtain an intermediate parameter F_(2k) for subsequent iteration by using formula (4.8):

$\begin{matrix} {F_{2k} = \left\lbrack \begin{matrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{matrix} \right\rbrack} & (4.8) \end{matrix}$

In the above formula, reorder(w_(2k−2)) refers to transforming the vector w_(2k−2) in the following way: exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of the vector w_(2k−2), and then calculating a conjugate of each item of the vector, where i=1, 2, . . . , k−1. It should be noted that, only λ_(2k−1), f_(2k−1,2k), and λ_(2k) are used in the iteration; w_(2k−2) and the entire F_(2k) are not used in the iteration. Therefore, w_(2k−2) and the entire F_(2k) may be not calculated in each iteration, so as to reduce the amount of calculation in each iteration; F_(2k) may also be calculated by other methods than the method disclosed in the present invention.

(4) Calculate a row vector ã_(2k−2,:) ^(H)=−ũ′_(2k−2) ^(H)A_((2k−2))+{tilde over (q)}_(ρ) _(k) _(,:) ^(H), where {tilde over (q)}_(ρ) _(k) _(,:) ^(H) is the ρ_(k) ^(th) row of the matrix

_(−(2k−2)), or, according to ã_(2k−2,:) ^(H)=

_(−(2k−2))(ρ_(k),:), obtain a row vector ã_(2k−,:) ^(H) directly, where

_(−(2k−2))(ρ_(k),:) is the ρ_(k) ^(th) row of

_(−(2k−2)); and then obtain an intermediate parameter A_(2k) for subsequent iteration by using formula (4.9):

$\begin{matrix} {A_{2k} = \begin{bmatrix} A_{({{2k} - 2})} \\ {\lambda_{{2k} - 1}{\overset{\sim}{a}}_{{{2k} - 2},:}^{H}} \\ {{\left( f_{{{2k} - 1},{2k}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 2},:}^{H}} + {\lambda_{2k}\left( {\overset{\sim}{a}}_{{{2k} - 2},:}^{H} \right)}^{*}} \end{bmatrix}} & (4.9) \end{matrix}$

In the above formula, A_(2k) may also be represented as

${A_{2k} = \begin{bmatrix} A_{({{2k} - 2})} \\ a_{{{2k} - 1},:}^{H} \\ a_{{2k},:}^{H} \end{bmatrix}},$

where a_(2k−1,:) ^(H) and a_(2k,:) ^(H) the (2k−1)^(th) row and the 2k^(th) row of A_(2k) respectively, and a_(2k−1,:) ^(H) and a_(2k,:) ^(H) make up a k^(th) difference coefficient.

(5) Let an index of a selected atom of the base matrix be τ_(2k)=[τ_(2k−2) ^(T) π_(ρ) _(k) π _(ρ) _(k) ]^(T); and delete the ρ_(k) ^(th) item and the ( ρ _(k))^(th) item from

_(−(2k−2)) and an atom index

_(−(2k−2)) to be selected respectively to obtain

_(−(2k)) and

_(−(2k)) for subsequent iteration.

(6) Delete the ρ_(k) ^(th) row and the ( ρ _(k))^(th) row from

_(−(2k−2)) to obtain

_(−(2k−2)); then save the ρ_(k) ^(th) column of

_(−(2k−2)), denote it as θ′_((ρ) _(k) ₎, that is, θ′_((ρ) _(k) ₎=

_(−(2k−2))(:,ρ_(k)); finally, delete the ρ_(k) ^(th) column and the ( ρ _(k))^(th) column from

_(−(2k−2)) to obtain

_(−(2k)) for subsequent iteration; and delete the ρ_(k) ^(th) row and the ( ρ _(k))^(th) row from

_(−(2k−2)) to obtain

_(−(2k−2)), and then calculate

_(−(2k))=θ′_((ρ) _(k) ₎−

_(−(2k−2))ũ′_(2k−2); and finally, obtain an intermediate parameter

_(−(2k)) for subsequent iteration by using formula (4.10):

_(−(2k))=[

_(−(2k−2))λ_(2k−1)

_(−(2k))(f _(2k−1,2k)

_(−(2k))+λ_(2k)×flipud(

_(−(2k))))]  (4.10)

In the above formula,

_(−(2k)) may be represented as

_(−(2k))=[

_(−(2k−2)) t _(2k−1) t _(2k)], where t _(2k−1) and t _(2k) represent the (2k−1)^(th) column and the 2k^(th) column of

_(−(2k)) respectively, and t _(2k−1) and t _(2k) make up a k^(th) base difference.

(7) Delete the ρ_(k) ^(th) row and the ( ρ _(k))^(th) row from matrix

_(−(2k−2)) to obtain

_(−(2k)) for next iteration; and delete the ρ_(k) ^(th) row and the ( ρ _(k))^(th) row from matrix

_(−(2k−2)) to obtain

_(−(2k)) for next iteration.

(8) If k<K/2−1 (generally, K is smaller than or equal to K_sparse), the process goes back to S406 and S407 after the value of k increases by 1; if k=K/2−1, the process goes back to S406 and S407 after the value of k increases by 1, and subsequently S408 is performed.

When S407 is performed, it is necessary only to update the index τ_(2k) of the base matrix.

S408. Recover the original signal according to the index τ_(2K) of the selected atom of the base matrix. For details, reference may be made to the prior art.

FIG. 5 is a schematic flowchart of a signal reconstruction method 500 according to an embodiment of the present invention. As shown in FIG. 5, the method 500 includes:

S501. Obtain, by using the method disclosed in the reference document [1], a measured value (non-adaptive linear projection) Y=[y₁ y₂ . . . y_(L)] of an original signal and a corresponding dictionary (that is, sensing matrix) T, where the dictionary T with M rows and N columns fulfills: An i^(th) column and a (N−i+1)^(th) column are mutually conjugate, and all items in Y=[y₁ y₂ . . . y_(L)] are real numbers.

S502. After the measured value of the original signal is obtained, store or transmit the measured value.

S503. Determine the original signal to be reconstructed. First, perform an initialization process, where the initialization process may include the following steps.

(1) Set an initial value {tilde over (y)}_(j)=y_(j) of a residual error, where j=1, 2, . . . , L, that is, set the initial value of the residual error to be a measured value vector.

(2) Set a sensing matrix T, where the sensing matrix is an N×N matrix; and denote the square of the modulus of columns in the sensing matrix T as δ′=[∥t₍₁₎∥₂ ² ∥t₍₂₎∥₂ ² . . . ∥t_((N))∥₂ ²], where t_((i)) (i=1, 2, . . . , N) represents the i^(th) column of T, and ∥t_((i))∥₂ represents the modulus of the vector t_((i)). An index of a selected column of a base matrix B is denoted as a column vector τ, and its initial value τ₀ is an empty vector.

(3) Calculate and store a correlation matrix Θ=T^(H)T of the sensing matrix, or calculate and store off-diagonal items (that is, items that are not on the diagonal) of a correlation matrix Θ=T^(H)T of the sensing matrix. It should be noted that, because the sensing matrix T is generally constant, or at least constant in a long time, it is not necessary to calculate the correlation matrix Θ=T^(H)T of the sensing matrix on every occasion of reconstructing the original signal. After the correlation matrix Θ=T^(H)T of the sensing matrix is calculated and stored, the stored correlation matrix Θ=T^(H)T is reusable in subsequent reconstruction of the original signal and the correlation matrix does not need to be calculated again.

S504. Determine a first array most correlative to the measured value of the original signal in the sensing matrix, which may include the following steps:

(1) Calculate a correlation between a first residual error and each column in the sensing matrix by using formula (5.1):

q _(j) ⁰ =T ^(H) {tilde over (y)} _(j) =T ^(H) y _(j)  (5.1)

In the above formula, j=1, 2, . . . , L. The first residual error is the initial value of the residual error, and is equal to the measured value vector. For ease of description, subsequently, let Q⁰=[q₁ ⁰ q₂ ⁰ . . . q_(L) ⁰]. It can be easily seen that, Q⁰ is always a matrix with N rows and L columns. Because the i^(th) column and the (N+1−i)^(th) column of T are conjugately symmetric, only a correlation between the first residual error and about a half of columns of the sensing matrix T needs to be calculated in practice, for example, a correlation between the first residual error and the first to

$\left\lceil \frac{N}{2} \right\rceil^{th}$

columns of the sensing matrix T.

(2) Find a sequence number ρ_(l) of a column with the maximum correlation value by using formula (5.2):

$\begin{matrix} {\rho_{1} = {{\underset{i = 1}{\overset{N}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{0}}^{2}} \right)}/\delta_{i}^{\prime}}} & (5.2) \end{matrix}$

In the above formula, q_(i,j) ⁰ is an i^(th) item of q_(j) ⁰, and δ′_(i) is an i^(th) item of

⁻⁽⁰⁾. If, in the previous step, only the correlation between the first residual error and the first to

$\left\lceil \frac{N}{2} \right\rceil^{th}$

columns of the sensing matrix T is calculated, the formula applied here is:

$\rho_{1} = {{\underset{i = 1}{\overset{\lceil{N/2}\rceil}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{0}}^{2}} \right)}/{\delta_{i}^{\prime}.}}$

Therefore, it can be determined that the ρ_(l) ^(th) column in the sensing matrix is the first column most correlative to the measured value of the original signal in the sensing matrix. Meanwhile, it is further determined that the ( ρ _(l)=N−ρ_(l)+1)^(th) column in the sensing matrix is also a column most correlative to the measured value of the original signal in the sensing matrix. This is because the dictionary T fulfills that the i^(th) column and the (N−i+1)^(th) column are mutually conjugate.

S505. Determine intermediate values for subsequent iteration or subsequent signal recovery, and update related variables.

First, intermediate parameters are calculated by using formula λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, where θ_(ρ) _(l) _(,ρ) _(l) is an item in the ρ_(l) ^(th) row and the ρ_(l) ^(th) column in the matrix Θ; then u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, λ₂=1/√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, and f_(1,2)=−λ₂λ₁u″₁ are calculated; and finally, F₂ for subsequent iteration is obtained by using formula (5.3):

$\begin{matrix} {F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}} & (5.3) \end{matrix}$

(2) Let q_(ρ) _(l) _(,:) ^(H)=Q(ρ_(l),:), that is, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row of Q, and then obtain an intermediate parameter A₂ for subsequent iteration by using formula (5.4):

$\begin{matrix} {A_{2} = \begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}} & (5.4) \end{matrix}$

In the above formula, the matrix A₂ may be represented as

${A_{2} = \begin{bmatrix} a_{1,:}^{H} \\ a_{2,:}^{H} \end{bmatrix}},$

where a_(1,:) ^(H) and a_(2,:) ^(H) represent the first row and the second row of the matrix A₂ respectively, and a_(1,:) ^(H) and a_(2,:) ^(H) make up a first difference coefficient.

(3) Obtain an intermediate parameter T ₂ for subsequent iteration by using formula (5.5):

T ₂=[λ₁θ_((ρ) _(l) ₎ f _(1,2)θ_((ρ) _(l) ₎+λ₂×flipud(θ*_((ρ) _(l) ₎)]  (5.5)

In the above formula, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column of the matrix Θ; flipud refers to reversing order of a column vector, that is, changing the first item of the column vector to the last item, changing the second item to the last item but one, . . . , and changing the last item to the first item; and the matrix T ₂ may be represented as T ₂=[ t ₁ t ₂], where t ₁ and t ₂ represent the first column and the second column of the matrix T ₂ respectively, and t ₁ and t ₂ make up a first base difference.

S506. Determine a k^(th) array most correlative to the measured value of the original signal in the sensing matrix, where an initial value of k is 2, which may include the following steps.

(1) Calculate, by using formula (5.6), a correlation q_(j) ^(k−1) between a k^(th) residual error and each column in the sensing matrix T, where j=1, 2, . . . , L, that is:

$\begin{matrix} {Q^{k - 1} = {Q^{k - 2} - {\begin{bmatrix} {\overset{\_}{t}}_{{2k} - 3} & {\overset{\_}{t}}_{{2k} - 2} \end{bmatrix}\begin{bmatrix} a_{{{2k} - 3},:}^{H} \\ a_{{{2k} - 2},:}^{H} \end{bmatrix}}}} & (5.6) \end{matrix}$

In the above formula, Q^(k−1)=[q₁ ^(k−1) q₂ ^(k−1) . . . q_(L) ^(k−1)], the vectors t _(2k−3) and t _(2k−2) make up a set [ t _(2k−3) t _(2k−2)], that is, a matrix [ t _(2k−3) t _(2k−2)], which is a (k−1)^(th) base difference; the vectors a_(2k−3,:) ^(H) and a_(2k−2,:) ^(H) make up a set

$\begin{bmatrix} a_{{{2k} - 3},;}^{H} \\ a_{{{2k} - 2},:}^{H} \end{bmatrix},$

which is a (k−1)^(th) difference coefficient; and the vectors a_(2k−3,:) ^(H) and a_(2k−2,:) ^(H) themselves are made up of multiple scalars. The (k−1)^(th) base difference and the (k−1)^(th) difference coefficient have been obtained in preceding steps.

Because the i^(th) column and the (N+1−i)^(th) column of T are conjugately symmetric, only the correlation between the first residual error and about a half of columns of the sensing matrix T needs to be calculated in practice, for example, a correlation between the first residual error and the first to

$\left\lceil \frac{N}{2} \right\rceil^{th}$

columns of the sensing matrix T.

(2) Determine a sequence number ρ_(k) of a column with the maximum correlation value by using formula (5.7):

$\begin{matrix} {{\rho_{k} = {{\underset{i = 1}{\overset{N}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{k - 1}}^{2}} \right)}/{\delta_{i}}^{2}}},} & (5.7) \end{matrix}$

where, q_(i,j) ^(k−1) is an item in an i^(th) row and a j^(th) column of the matrix Q^(k−1); then obtain a sequence number ρ _(k)=N+1−ρ_(k) of another column with the maximum correlation value. If, in the previous step, only the correlation between the first residual error and the first to

$\left\lceil \frac{N}{2} \right\rceil^{th}$

columns of the sensing matrix T is calculated, the formula applied here is:

$\rho_{k} = {{\underset{i = 1}{\overset{\lceil{N/2}\rceil}{argmax}}\left( {\sum\limits_{j = 1}^{L}{q_{i,j}^{k - 1}}^{2}} \right)}/{{\delta_{i}}^{2}.}}$

S507. Determine intermediate values for subsequent iteration or subsequent signal recovery, and update related variables.

(1) Let a vector ũ_(2k−2) be equal to a conjugate transposition of the ρ_(k) ^(th) row of the matrix T _(2k−2), that is, ũ′_(2k−2)=( T _(2k−2)( ρ _(k),:))^(H), and then calculate λ_(2k−1)=1/√{square root over (θ_(ρ) _(k) _(,ρ) _(k) −ũ′_(2k−2) ^(H)ũ′_(2k−2))} and w_(2k−2)=F_(2k−2)ũ′_(2k−2), where it should be noted that, in the k^(th) iteration, θ_(i,j) represents an item in the i^(th) row and the j^(th) column of the matrix Θ; then calculate ũ″_(2k−1)=λ_(2k−1)(θ _(ρ) _(k) _(,ρ) _(k) − T _(2k−2)( ρ _(k),:)×ũ′_(2k−2))*, where T _(2k−2) ( ρ _(k),:) represents the ρ _(k) ^(th) row of the matrix T _(2k−2); and calculate λ_(2k)=1√{square root over (1/λ_(2k−1) ²−|ũ″_(2k−1)|²)} and f_(2k−1,2k)=−λ_(2k)λ_(2k−1)ũ″_(2k−1); and finally, obtain an intermediate parameter F_(2k) for subsequent iteration by using formula (5.8):

$\begin{matrix} {F_{2k} = \left\lbrack \begin{matrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{matrix} \right\rbrack} & (5.8) \end{matrix}$

In the above formula, reorder(w_(2k−2)) refers to transforming the vector w_(2k−2) in the following way: exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of the vector w_(2k−2), and then calculating a conjugate of each item of the vector, where i=1, 2, . . . , k−1. It should be noted that, only λ_(2k−1), f_(2k−1,2k), and λ_(2k) are used in the iteration; w_(2k−2) and the entire F_(2k) are not used in the iteration. Therefore, w_(2k−2) and the entire F_(2k) may be not calculated in each iteration, so as to reduce the amount of calculation in each iteration; and F_(2k) may also be calculated by other methods than the method disclosed in the present invention.

(2) According to ã_(2k−2) ^(H)=Q^(k−1)(ρ_(k),:), obtain a row vector ã_(2k−2,:) ^(H) directly, where Q^(k−1)(ρ_(k),:) is the ρ_(k) ^(th) row of Q^(k−1); and then obtain an intermediate parameter A_(2k) for subsequent iteration by using formula (5.9):

$\begin{matrix} {A_{2k} = \begin{bmatrix} A_{({{2k} - 2})} \\ {\lambda_{{2k} - 1}{\overset{\sim}{a}}_{{{2k} - 2},:}^{H}} \\ {{\left( f_{{{2k} - 1},{2k}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 2},:}^{H}} + {\lambda_{2k}\left( {\overset{\sim}{a}}_{{{2k} - 2},:}^{H} \right)}^{*}} \end{bmatrix}} & (5.9) \end{matrix}$

In the above formula, A_(2k) may also be represented as

${A_{2k} = \begin{bmatrix} A_{({{2k} - 2})} \\ a_{{{2k} - 1},:}^{H} \\ a_{{2k},:}^{H} \end{bmatrix}},$

where a_(2k−1,:) ^(H) and a_(2k,:) ^(H) represent the (2k−1)^(th) row and the 2k^(th) row of A_(2k) respectively, and a_(2k−1,:) ^(H) and a_(2k,:) ^(H) make up a k^(th) difference coefficient.

(3) Let an index of a selected atom of the base matrix be τ_(2k)=[τ_(2k−2) ^(T) ρ_(k) ρ _(k)]^(T)=[τ_(2k−2) ^(T) ρ_(k) N+1−ρ_(k)]^(T).

(4) Calculate {tilde over (t)}_(k)=θ_((ρ) _(k) ₎− T _(2k−2)ũ′_(2k−2), where θ_((ρ) _(k) ₎ is the ρ_(k) ^(th) column of Θ; and then obtain an intermediate parameter T _(2k) for subsequent iteration by using formula (5.10):

T _(2k) =[ T _(2k−2)λ_(2k−1) {tilde over (t)} _(k)(f _(2k−1,2k) {tilde over (t)} _(k)+λ_(2k)×flipud({tilde over (t)}* _(k)))]  (5.10)

In the above formula, T _(2k) may be represented as T _(2k)=[ T _(2k−2) t _(2k−1) t _(2k)], where t _(2k−1) and t _(2k) represent the (2k−1)^(th) column and the 2k^(th) column of T _(2k) respectively, and t _(2k−1) and t _(2k) make up a k^(th) base difference.

(5) If k<K/2−1 (generally, K is smaller than or equal to K_sparse), the process goes back to S506 and S507 after the value of k increases by 1; if k=K/2−1, the process goes back to S506 and S507 after the value of k increases by 1, and subsequently, S508 is performed. When S507 is performed, it is necessary only to update the index τ_(2k) of the base matrix.

S508. Recover the original signal according to the index τ_(2K) of the selected atom of the base matrix. For details, reference may be made to the prior art.

In FIG. 6, complexity of implementing the following methods is simulated: an orthogonal matching pursuit method of direct matrix reversing that is described in the reference document [2] (Joel Tropp and Anna Gilbert, “Signal recovery from random measurements via orthogonal matching pursuit”, IEEE Trans. on Information Theory, 53(12) pp. 4655-4666, December 2007); a QR decomposition-based orthogonal matching pursuit method that is described in the reference documents [2] and [3] (Thomas Blumensath, Mike E. Davies, “In Greedy Pursuit of New Directions: (Nearly) Orthogonal Matching Pursuit by Directional Optimisation”, Proc. of the European Signal Processing Conference (EUSIPCO), Poznan, Poland, (2007)); an orthogonal matching pursuit method based on inverse matrix update that is described in the reference documents [4] (Yong Fang, Liang Chen, Jiaji Wu, Bormin Huang, “GPU Implementation of Orthogonal Matching Pursuit for Compressive Sensing”, Parallel and Distributed Systems (ICPADS), 2011 IEEE 17^(th) International Conference on, 2011, pp. 1044-1047) and [3]; and the orthogonal matching pursuit method that is disclosed in the present invention. Simulation parameters applied are the same as simulation parameters used in FIG. 5 a of the reference document [5] (Stefan Kunis and Holger Rauhut, “Random sampling of sparse trigonometric polynomials II—Orthogonal matching pursuit versus basis pursuit”, Preprint, 2006.), the X-coordinate employs a dimension N of the original signal s (that is, the N in “the original signal is represented as a column vector with N items”), N=2^(i), where i=4, 5, . . . , 10. Let the number of nonzero items in a sparse expression be K=½√{square root over (N)}, and let the number of items of a linear measured value be M=K×(log₂ N−2).

As can be seen from the simulation results in FIG. 6, the implementation complexity of the present invention is about 15% of the implementation complexity of the prior art.

Therefore, in the embodiment of the present invention, the correlation between the k^(th) residual error and the multiple columns in the sensing matrix is determined according to the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, and a column most correlative to the measured value of the original signal in the sensing matrix is further determined for recovering the signal. In this way, under the premise of ensuring proper recovery of the signal, the amount of calculation for reconstructing the signal can be reduced.

FIG. 7 is a schematic block diagram of a signal reconstruction apparatus 600 according to an embodiment of the present invention. As shown in FIG. 7, the apparatus 600 includes a first determining unit 610 configured to determine a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix, and determine a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns in the sensing matrix; a second determining unit 620 configured to determine a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix, and determine a k^(th) array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where 2≦k≦K; and a recovering unit 630 configured to recover the original signal after the second determining unit 620 determines the K^(th) array most correlative to the measured value of the original signal in the sensing matrix.

Optionally, the second determining unit 620 is configured to, from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtract a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where the (k−1)^(th) base difference is a vector or a vector set, and the (k−1)^(th) difference coefficient is a scalar or a scalar set or a set of vectors composed of multiple scalars.

Optionally, the second determining unit 620 is further configured to: if k=2, determine a first base difference; if k=3, determine the (k−1)^(th) base difference according to a first base difference; or if k≧4, determine the (k−1)^(th) base difference according to first to (k−2)^(th) base differences.

Optionally, the second determining unit 620 is configured to determine the first base difference t _(N−1) by using formula t ₁=λ₁·θ_((ρ) _(l) ₎; and determine the (k−1)^(th) base difference by using formula t _(k−1)=−λ_(k−1) T _(k−2)ũ_(k−2)+λ_(k−1)θ_((ρ) _(k−1) ₎, where λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_((ρ) _(l) ₎ is a ρ_(l) ^(th) column of Θ, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in Θ, Θ is a correlation matrix of the sensing matrix, ρ_(l) is a sequence number of a column in the sensing matrix, where the column is a column of a first array most correlative to the measured value of the original signal in the sensing matrix, T ₁=[ t ₁], T _(k−2)=[ T _(k−3) t _(k−2)], λ_(k−1)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ_(k−2) ^(H)ũ_(k−2))}, ũ_(k−2)=( t _((ρ,:)) ^(H))^(H), θ_(ρ) _(k−1) _(,ρ) _(k−1) is an item in a (ρ_(k−1))th row and a (ρ_(k−1))^(th) column in Θ, t _((ρ) _(k) _(,:)) ^(H) is a (ρ_(k−1))^(th) row in T _(k−2), and ρ_(k−1) is a sequence number of a column in the sensing matrix, where the column is a column of a (k−1)^(th) array most correlative to the measured value of the original signal in the sensing matrix.

Optionally, the second determining unit 620 is further configured to determine the k^(th) difference coefficient a_(k) by using formula a_(k)=λ_(k)q_(ρ) _(k) ^(k−1).

Optionally, as shown in FIG. 8, the apparatus further includes a third determining unit 640 configured to determine F₁ by using formula F₁=[λ₁], and if 2≦k≦K, determine F_(k) by using formula

${F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}},$

where u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1); and the recovering unit is configured to recover the signal according to the F_(K).

Optionally, the recovering unit 640 is configured to determine a weight coefficient column vector z_(K) by using formula z_(K)=F_(K)a_(K); determine x according to the weight coefficient column vector to make {circumflex over (x)}_(τ) _(k) =z_(k), where z_(k) is a k^(th) item of z_(K), and τ_(k) is a column in an array most correlative to the measured value of the original signal in the sensing matrix; and obtain the original signal according to the x.

Optionally, the second determining unit 620 is configured to determine a first column and a second column of T ₂ as a first base difference; and determine a (2k−3)^(th) column and a (2k−2)^(th) column of T _(2k−2) as the (k−1)^(th) base difference, where:

T ₂=[λ₁θ_((ρ) _(l) ₎ f _(1,2)θ_((ρ) _(l) ₎+λ₂×flipud(θ*_((ρ) _(l) ₎)],

T _(2k−2) =[ T _(2k−4)λ_(2k−3) {tilde over (t)} _(k)(f _(2k−3,2k−2) {tilde over (t)} _(k−1)+λ_(2k−2)×flipud({tilde over (t)}* _(k−1)))],

λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_(ρ) _(l) _(,ρ) _(l) represents an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in the sensing matrix Θ, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column in the sensing matrix Θ, f_(1,2)=−λ₂λ₁u″₁, λ₂=1/√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁ represents an item in the ρ_(l) ^(th) row and a (N−ρ_(l)+1)^(th) column in the sensing matrix Θ, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row in Q, Q is a matrix composed of correlations between the first residual error and the multiple columns in the sensing matrix, λ_(2k−3)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ′_(2k−4) ^(H)ũ′_(2k−4))}, ũ′_(2k−4)=( T _(2k−4)( ρ _(k−1),:))^(H), T _(2k−4)( ρ _(k−1),:) represents a ρ _(k−1) ^(th) row in the matrix T _(2k−4), f_(2k−3,2k−2)=−λ_(2k−2)λ_(2k−3)ũ″_(2k−3), λ_(2k−2)=1/√{square root over (1/λ_(2k−3) ²−|ũ″_(2k−3)|²)}, ũ″_(2k−3)=λ_(2k−3)(θ _(ρ) _(k−1) _(,ρ) _(k−1) − T _(2k−4)( ρ _(k−1),:)×ũ′_(2k−4))*, {tilde over (t)}_(k−1)=θ_((ρ) _(k−1) ₎− T _(2k−4)ũ′_(2k−4), and θ_((ρ) _(k−1) ₎ is a ρ_(k−1) ^(th) column in the matrix Θ.

Optionally, the second determining unit 620 is further configured to: determine a first row and a second row of A₂ as a first difference coefficient; and determine a (2k−3)^(th) row and a (2k−2)^(th) row of A_(2k−2) as the (k−1)^(th) difference coefficient, where:

${A_{{2k} - 2} = \begin{bmatrix} A_{({{2k} - 4})} \\ {\lambda_{{2k} - 3}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} \\ {{\left( f_{{{2k} - 3},{{2k} - 2}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} + {\lambda_{{2k} - 2}\left( {\overset{\sim}{a}}_{{{2k} - 4},:}^{H} \right)}^{*}} \end{bmatrix}},{and}$ $A_{2} = {\begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}.}$

Optionally, as shown in FIG. 8, the apparatus 600 further includes a fourth unit 650 configured to determine F₂ by using formula

${F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}},$

and if 2≦k≦K, determine F_(2k) by using formula

${F_{2k} = \begin{bmatrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{bmatrix}},$

where reorder(w_(2k−2)) refers to exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of a vector w_(2k−2), and then calculating a conjugate of each item of the vector, where i=1, 2, . . . , k−1, and w_(2k−2)=F_(2k−2)ũ′_(2k−2); and the recovering unit is configured to recover the signal according to the F_(2K).

Therefore, in the embodiment of the present invention, the correlation between the k^(th) residual error and the multiple columns in the sensing matrix is determined according to the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, and a column most correlative to the measured value of the original signal in the sensing matrix is further determined for recovering the signal. In this way, under the premise of ensuring proper recovery of the signal, the amount of calculation for reconstructing the signal can be reduced.

FIG. 9 is a schematic block diagram of a signal reconstruction apparatus 700 according to an embodiment of the present invention. As shown in FIG. 9, the apparatus 700 includes a memory 710 and a processor 720, where the memory 710 stores program codes, and the processor 720 is configured to invoke the program codes to perform the following operations: determining a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix, and determining a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns in the sensing matrix; determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix, and determining a k^(th) array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where 2≦k≦K; and recovering the original signal after determining the K^(th) array most correlative to the measured value of the original signal in the sensing matrix.

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations: from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, where the (k−1)^(th) base difference is a vector or a vector set, and the (k−1)^(th) difference coefficient is a scalar or a scalar set or a set of vectors composed of multiple scalars.

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations: if k=2, determining a first base difference; if k=3, determining the (k−1)^(th) base difference according to a first base difference; or if k≧4, determining the (k−1)^(th) base difference according to first to (k−2)^(th) base differences.

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations: determining the first base difference t _(N−1) by using formula t ₁=λ₁·θ_((ρ) _(l) ₎; and determining the (k−1)^(th) base difference by using formula t _(k−1)=−λ_(k−1) T _(k−2)ũ_(k−2)+λ_(k−1)θ_((ρ) _(k−1) ₎, where λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_((ρ) _(l) ₎ is a ρ_(l) ^(th) column of Θ, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in Θ, Θ is a correlation matrix of the sensing matrix, ρ_(l) is a sequence number of a column in the sensing matrix, where the column is a column of a first array most correlative to the measured value of the original signal in the sensing matrix, T ₁=[ t ₁], T _(k−2)=[ T _(k−3) t _(k−2)], λ_(k−1)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ_(k−2) ^(H)ũ_(k−2))}, ũ_(k−2)=( t _((ρ,:)) ^(H))^(H), θ_(ρ) _(k−1) _(,ρ) _(k−1) is an item in a (ρ_(k−1))^(th) row and a (ρ_(k−1))^(th) column in Θ, {tilde over (t)}_((ρ) _(k) _(,:)) ^(H) is a (ρ_(k−1))^(th) row in T _(k−2), and ρ_(k−1) is a sequence number of a column in the sensing matrix, where the column is a column of a (k−1)^(th) array most correlative to the measured value of the original signal in the sensing matrix.

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations: determining the k^(th) difference coefficient a_(k) by using formula a_(k)=λ_(k)q_(ρ) _(k) ^(k−1).

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations: determining F₁ by using formula F₁=[λ₁]; if 2≦k≦K, determining F_(k) by using formula

${F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}},$

where u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1); and recovering the signal according to the F_(K).

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations: determining a weight coefficient column vector z_(K) by using formula z_(K)=F_(K)a_(K); determining x according to the weight coefficient column vector to make {circumflex over (x)}_(τ) _(k) =z_(k), where z_(k) is a k^(th) item of z_(K), and τ_(k) is a column in an array most correlative to the measured value of the original signal in the sensing matrix; and obtaining the original signal according to the x.

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations: determining a first column and a second column of T ₂ as a first base difference; and determining a (2k−3)^(th) column and a (2k−2)^(th) column of T _(2k−2) as the (k−1)^(th) base difference, where:

T ₂=[λ₁θ_((ρ) _(l) ₎ f _(1,2)θ_((ρ) _(l) ₎+λ₂×flipud(θ*_((ρ) _(l) ₎)],

T _(2k−2) =[ T _(2k−4)λ_(2k−3) {tilde over (t)} _(k)(f _(2k−3,2k−2) {tilde over (t)} _(k−1)+λ_(2k−2)×flipud({tilde over (t)}* _(k−1)))],

λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_(ρ) _(l) _(,ρ) _(l) represents an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in the sensing matrix Θ, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column in the sensing matrix Θ, f_(1,2)=−λ₂λ₁u″₁, λ₂=1/√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁ represents an item in the ρ_(l) ^(th) row and a (N−ρ_(l)+1)^(th) column in the sensing matrix Θ, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row in Q, Q is a matrix composed of correlations between the first residual error and the multiple columns in the sensing matrix, λ_(2k−3)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ′_(2k−4) ^(H)ũ′_(2k−4))}, ũ′_(2k−4)=( T _(2k−4)( ρ _(k−1),:))^(H), T _(2k−4)( ρ _(k−1),:) represents a ( ρ _(k−1))^(th) row in the matrix T _(2k−4), f_(2k−3,2k−2)=−λ_(2k−2)λ_(2k−3)ũ″_(2k−3), λ_(2k−2)=1/√{square root over (1/λ_(2k−3) ²−|ũ″_(2k−3)|²)}, ũ″_(2k−3)=λ_(2k−3)(θ _(ρ) _(k−1) _(,ρ) _(k−1) − T _(2k−4)( ρ _(k−1),:)×ũ′_(2k−4))*, {tilde over (t)}_(k−1)=θ_((ρ) _(k−1) ₎− T _(2k−4)ũ′_(2k−4), and θ_((ρ) _(k−1) ₎ is a ρ_(k−1) ^(th) column in the matrix Θ.

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations: determining a first row and a second row of A₂ as a first difference coefficient; and determining a (2k−3)^(th) row and a (2k−2)^(th) row of A_(2k−2) as the (k−1)^(th) difference coefficient, where:

${A_{{2k} - 2} = \begin{bmatrix} A_{({{2k} - 4})} \\ {\lambda_{{2k} - 3}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} \\ {{\left( f_{{{2k} - 3},{{2k} - 2}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} + {\lambda_{{2k} - 2}\left( {\overset{\sim}{a}}_{{{2k} - 4},:}^{H} \right)}^{*}} \end{bmatrix}},{and}$ $A_{2} = {\begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}.}$

Optionally, the processor 720 is configured to invoke the program codes to perform the following operations determining F₂ by using formula

${F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}};$

if 2≦k≦K, determine F_(2k) by using formula:

${F_{2k} = \begin{bmatrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{bmatrix}},$

where reorder(w_(2k−2)) refers to exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of a vector w_(2k−2), and then calculating a conjugate of each item of the vector, where i=1, 2, . . . , k−1, and w_(2k−2)=F_(2k−2)ũ′_(2k−2); and recovering the signal according to the F_(2K).

Therefore, in the embodiment of the present invention, the correlation between the k^(th) residual error and the multiple columns in the sensing matrix is determined according to the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, and a column most correlative to the measured value of the original signal in the sensing matrix is further determined for recovering the signal. In this way, under the premise of ensuring proper recovery of the signal, the amount of calculation for reconstructing the signal can be reduced. 

What is claimed is:
 1. A signal reconstruction method, comprising: determining a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix; determining a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns in the sensing matrix; determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix; determining a k^(th) array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, wherein 2≦k≦K; and recovering the original signal after determining a K^(th) array most correlative to the measured value of the original signal in the sensing matrix.
 2. The method according to claim 1, wherein the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix comprises, from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, wherein the (k−1)^(th) base difference is a vector or a vector set, and the (k−1)^(th) difference coefficient is a scalar or a scalar set or a set of vectors composed of multiple scalars.
 3. The method according to claim 2, wherein before the from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix further comprises: determining a first base difference when k=2; determining the (k−1)^(th) base difference according to a first base difference when k=3; or determining the (k−1)^(th) base difference according to first to (k−2)^(th) base differences when k≧4.
 4. The method according to claim 3, wherein the determining a first base difference comprises determining the first base difference t _(N−1) by using formula t ₁=λ₁·θ_((ρ) _(l) ₎; and the determining the (k−1)^(th) base difference comprises determining the (k−1)^(th) base difference by using formula t _(k−1)=−λ_(k−1) T _(k−2)ũ_(k−2)+λ_(k−1)θ_((ρ) _(k−1) ₎, wherein λ₁√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_((ρ) _(l) ₎ is a ρ_(l) ^(th) column of Θ, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in Θ, Θ is a correlation matrix of the sensing matrix, ρ_(l) is a sequence number of a column in the sensing matrix, wherein the column is a column of a first array most correlative to the measured value of the original signal in the sensing matrix, T ₁=[ t ₁], T _(k−2)=[ T _(k−3) t _(k−2)], λ_(k−1)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ_(k−2) ^(H)ũ_(k−2))}, ũ_(k−2)=( t _((ρ,:)) ^(H))^(H), θ_(ρ) _(k−1) _(,ρ) _(k−1) is an item in a ρ_(k−1) ^(th) row and a ρ_(k−1) ^(th) column in Θ, t _((ρ) _(k) _(,:)) ^(H) is a (ρ_(k−1))^(th) row in T _(k−2), and ρ_(k−1) is a sequence number of a column in the sensing matrix, wherein the column is a column of a (k−1)^(th) array most correlative to the measured value of the original signal in the sensing matrix.
 5. The method according to claim 4, wherein before the from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix further comprises determining a k^(th) difference coefficient a_(k) by using formula a_(k)=λ_(k)q_(ρ) _(k) ^(k−1).
 6. The method according to claim 4, wherein the method further comprises: determining F₁ by using formula F₁=[λ₁]; and determining F_(k) by using formula $F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}$ when 2≦k≦K, wherein u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1), and wherein the recovering the original signal of a received signal after determining a K^(th) array of the base matrix comprises recovering the signal according to the F_(K).
 7. The method according to claim 6, wherein the recovering the signal according to the F_(K) comprises: determining a weight coefficient column vector z_(K) by using formula z_(K)=F_(K)a_(K); determining x according to the weight coefficient column vector to make {circumflex over (x)}_(τ) _(k) =z_(k), wherein z_(k) is a k^(th) item of z_(K), and τ_(k) is a column in an array most correlative to the measured value of the original signal in the sensing matrix; and obtaining the original signal according to the x.
 8. The method according to claim 3, wherein the determining a first base difference comprises: determining a first column and a second column of T ₂ as the first base difference, and wherein the determining the (k−1)^(th) base difference comprises determining a (2k−3)^(th) column and a (2k−2)^(th) column of T _(2k−2) as the (k−1)^(th) base difference, wherein: T ₂=[λ₁θ_((ρ) _(l) ₎ f _(1,2)θ_((ρ) _(l) ₎+λ₂×flipud(θ*_((ρ) _(l) ₎)], T _(2k−2) =[ T _(2k−4)λ_(2k−3) {tilde over (t)} _(k)(f _(2k−3,2k−2) {tilde over (t)} _(k−1)+λ_(2k−2)×flipud({tilde over (t)}* _(k−1)))], λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_(ρ) _(l) _(,ρ) _(l) represents an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in the sensing matrix Θ, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column in the sensing matrix Θ, f_(1,2)=−λ₂λ₁u″₁, λ₂=1/√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁ represents an item in the ρ_(l) ^(th) row and a (N−ρ_(l)+1)^(th) column in the sensing matrix Θ, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row in Q, Q is a matrix composed of correlations between the first residual error and the multiple columns in the sensing matrix, λ_(2k−3)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ′_(2k−4) ^(H)ũ′_(2k−4))}, ũ′_(2k−4)=( T _(2k−4)( ρ _(k−1),:))^(H), T _(2k−4)( ρ _(k−1),:) represents a ( ρ _(k−1))^(th) row in the matrix T _(2k−4), f_(2k−3,2k−2)=−λ_(2k−2)λ_(2k−3)ũ″_(2k−3), λ_(2k−2)=1/√{square root over (1/λ_(2k−3) ²−|ũ″_(2k−3)|²)}, ũ″_(2k−3)=λ_(2k−3)(θ _(ρ) _(k−1) _(,ρ) _(k−1) − T _(2k−4)( ρ _(k−1),:)×ũ′_(2k−4))*, {tilde over (t)}_(k−1)=θ_((ρ) _(k−1) ₎− T _(2k−4)ũ′_(2k−4), and θ_((ρ) _(k−1) ₎ is a ρ_(k−1) ^(th) column in the matrix Θ.
 9. The method according to claim 8, wherein before the from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, the determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix further comprises: determining a first row and a second row of A₂ as a first difference coefficient; and determining a (2k−3)^(th) row and a (2k−2)^(th) row of A_(2k−2) as the (k−1)^(th) difference coefficient, wherein: ${A_{{2k} - 2} = \begin{bmatrix} A_{({{2k} - 4})} \\ {\lambda_{{2k} - 3}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} \\ {{\left( f_{{{2k} - 3},{{2k} - 2}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} + {\lambda_{{2k} - 2}\left( {\overset{\sim}{a}}_{{{2k} - 4},:}^{H} \right)}^{*}} \end{bmatrix}},{and}$ $A_{2} = {\begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}.}$
 10. The method according to claim 8, wherein the method further comprises: determining F₂ by using formula ${F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}};$ and determining F_(2k) by using formula $F_{2k} = \begin{bmatrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{bmatrix}$ when 2≦k≦K, wherein reorder(w_(2k−2)) refers to exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of a vector w_(2k−2), and then calculating a conjugate of each item of the vector, wherein i=1, 2, . . . , k−1, and w_(2k−2)=F_(2k−2)ũ′_(2k−2), and wherein the recovering the original signal of a received signal after determining a K^(th) column of the base matrix comprises recovering the signal according to the F_(2K).
 11. A signal reconstruction apparatus, comprising: a memory; and a processor, wherein the memory stores program codes, and the processor is configured to invoke the program codes to perform the following operations: determining a correlation between a first residual error and multiple columns in a sensing matrix according to a measured value of an original signal and the sensing matrix; determining a first array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the first residual error and the multiple columns in the sensing matrix; determining a correlation between a k^(th) residual error and the multiple columns in the sensing matrix according to a correlation between a (k−1)^(th) residual error and the multiple columns in the sensing matrix; determining a k^(th) array most correlative to the measured value of the original signal in the sensing matrix according to the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, wherein 2≦k≦K; and recovering the original signal after determining a K^(th) array most correlative to the measured value of the original signal in the sensing matrix.
 12. The apparatus according to claim 11, wherein the processor is configured to invoke the program codes to perform the following operations, from the correlation between the (k−1)^(th) residual error and the multiple columns in the sensing matrix, subtracting a product of a (k−1)^(th) base difference and a (k−1)^(th) difference coefficient to obtain the correlation between the k^(th) residual error and the multiple columns in the sensing matrix, wherein the (k−1)^(th) base difference is a vector or a vector set, and the (k−1)^(th) difference coefficient is a scalar or a scalar set or a set of vectors composed of multiple scalars.
 13. The apparatus according to claim 12, wherein the processor is configured to invoke the program codes to perform the following operations: determining a first base difference when k=2; determining the (k−1)^(th) base difference according to a first base difference when k=3; or determining the (k−1)^(th) base difference according to first to (k−2)^(th) base differences when k≧4.
 14. The apparatus according to claim 13, wherein the processor is configured to invoke the program codes to perform the following operations: determining the first base difference t _(N−1) by using formula t ₁=λ₁·θ_((ρ) _(l) ₎; and determining the (k−1)^(th) base difference by using formula t _(k−1)=−λ_(k−1) T _(k−2)ũ_(k−2)+λ_(k−1)θ_((ρ) _(k−1) ₎, wherein λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_((ρ) _(l) ₎ is a ρ_(l) ^(th) column of Θ, θ_(ρ) _(l) _(,ρ) _(l) is an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in Θ, Θ is a correlation matrix of the sensing matrix, ρ_(l) is a sequence number of a column in the sensing matrix, wherein the column is a column of a first array most correlative to the measured value of the original signal in the sensing matrix, T ₁=[ t ₁], T _(k−2)=[ T _(k−3) t _(k−2)], λ_(k−1)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ_(k−2) ^(H)ũ_(k−2))}, ũ_(k−2)=({tilde over (t)}_((ρ,:)) ^(H))^(H), θ_(ρ) _(k−1) _(,ρ) _(k−1) is an item in a (ρ_(k−1))^(th) row and a (ρ_(k−1))^(th) column in Θ, t _((p) _(k) _(,:)) ^(H) is a (ρ_(k−1))^(th) row in T _(k−2), and ρ_(k−1) is a sequence number of a column in the sensing matrix, wherein the column is a column of a (k−1)^(th) array most correlative to the measured value of the original signal in the sensing matrix.
 15. The apparatus according to claim 14, wherein the processor is configured to invoke the program codes to perform the following operations: determining the k^(th) difference coefficient a_(k) by using formula a_(k)=λ_(k)q_(ρ) _(k) ^(k−1).
 16. The apparatus according to claim 14, wherein the processor is configured to invoke the program codes to perform the following operations: determining F₁ by using formula F₁=[λ₁]; determining F_(k) by using formula $F_{k} = \begin{bmatrix} F_{k - 1} & u_{k - 1} \\ 0_{k - 1}^{T} & \lambda_{k} \end{bmatrix}$ when 2≦k≦K, wherein u_(k−1)=−λ_(k)F_(k−1)ũ_(k−1); and recovering the signal according to the F_(K).
 17. The apparatus according to claim 16, wherein the processor is configured to invoke the program codes to perform the following operations: determining a weight coefficient column vector z_(K) by using formula z_(K)=F_(K)a_(K); determining x according to the weight coefficient column vector to make {circumflex over (x)}_(τ) _(k) =z_(k), wherein z_(k) is a k^(th) item of z_(K), and τ_(k) is a column in an array most correlative to the measured value of the original signal in the sensing matrix; and obtaining the original signal according to the x.
 18. The apparatus according to claim 13, wherein the processor is configured to invoke the program codes to perform the following operations: determining a first column and a second column of T ₂ as a first base difference; and determining a (2k−3)^(th) column and a (2k−2)^(th) column of T _(2k−2) as the (k−1)^(th) base difference, wherein: T ₂=[λ₁θ_((ρ) _(l) ₎ f _(1,2)θ_((ρ) _(l) ₎+λ₂×flipud(θ*_((ρ) _(l) ₎)], T _(2k−2) =[ T _(2k−4)λ_(2k−3) t _(k)(f _(2k−3,2k−2) {tilde over (t)} _(k−1)+λ_(2k−2)×flipud({tilde over (t)}* _(k−1)))], λ₁=√{square root over (1/θ_(ρ) _(l) _(,ρ) _(l) )}, θ_(ρ) _(l) _(,ρ) _(l) represents an item in a ρ_(l) ^(th) row and a ρ_(l) ^(th) column in the sensing matrix Θ, θ_((ρ) _(l) ₎ is the ρ_(l) ^(th) column in the sensing matrix Θ, f_(1,2)=−λ₂λ₁u″₁, λ₂=1/√{square root over (θ_(ρ) _(l) _(,ρ) _(l) −(u″₁)*u″₁)}, u″₁=λ₁×θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁, θ_(ρ) _(l) _(,N−ρ) _(l) ₊₁ represents an item in the ρ_(l) ^(th) row and a (N−ρ_(l)+1)^(th) column in the sensing matrix Θ, q_(ρ) _(l) _(,:) ^(H) is the ρ_(l) ^(th) row in Q, Q is a matrix composed of correlations between the first residual error and the multiple columns in the sensing matrix, λ_(2k−3)=1/√{square root over (θ_(ρ) _(k−1) _(,ρ) _(k−1) −ũ′_(2k−4) ^(H)ũ′_(2k−4))}, ũ′_(2k−4)=( T _(2k−4)( ρ _(k−1),:))^(H), T _(2k−4)( ρ _(k−1),:) represents a ( ρ _(k−1))^(th) row in the matrix T _(2k−4), f_(2k−3,2k−2)=−λ_(2k−2)λ_(2k−3)ũ′_(2k−3), λ_(2k−2)=1/√{square root over (1/λ_(2k−3) ²−|ũ″_(2k−3)|²)}, ũ″_(2k−3)=λ_(2k−3)(θ _(ρ) _(k−1) _(,ρ) _(k−1) − T _(2k−4)( ρ _(k−1),:)×ũ′_(2k−4))*, {tilde over (t)}_(k−1)=θ_((ρ) _(k−1) ₎− T _(2k−4)ũ′_(2k−4), and θ_((ρ) _(k−1) ₎ is a (ρ_(k−1))^(th) in column the matrix Θ.
 19. The apparatus according to claim 18, wherein the processor is configured to invoke the program codes to perform the following operations: determining a first row and a second row of A₂ as a first difference coefficient; and determining a (2k−3)^(th) row and a (2k−2)^(th) row of A_(2k−2) as the (k−1)^(th) difference coefficient, wherein: ${A_{{2k} - 2} = \begin{bmatrix} A_{({{2k} - 4})} \\ {\lambda_{{2k} - 3}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} \\ {{\left( f_{{{2k} - 3},{{2k} - 2}} \right)^{*}{\overset{\sim}{a}}_{{{2k} - 4},:}^{H}} + {\lambda_{{2k} - 2}\left( {\overset{\sim}{a}}_{{{2k} - 4},:}^{H} \right)}^{*}} \end{bmatrix}},{and}$ $A_{2} = {\begin{bmatrix} {\lambda_{1}q_{\rho_{1},:}^{H}} \\ {{f_{1,2}^{*}q_{\rho_{1},:}^{H}} + {\lambda_{2}\left( q_{\rho_{1},:}^{H} \right)}^{*}} \end{bmatrix}.}$
 20. The apparatus according to claim 18, wherein the processor is configured to invoke the program codes to perform the following operations: determining F₂ by using formula ${F_{2} = \begin{bmatrix} \lambda_{1} & f_{1,2} \\ 0 & \lambda_{2} \end{bmatrix}};$ determining F_(2k) by using formula $F_{2k} = \begin{bmatrix} F_{{2k} - 2} & {{- \lambda_{{2k} - 1}}w_{{2k} - 2}} & \left( {{{- f_{{{2k} - 1},{2k}}}w_{{2k} - 2}} - {\lambda_{2k} \times {{reorder}\left( w_{{2k} - 2} \right)}}} \right) \\ 0_{{2k} - 2}^{H} & \lambda_{{2k} - 1} & f_{{{2k} - 1},{2k}} \\ 0_{{2k} - 2}^{H} & 0 & \lambda_{2k} \end{bmatrix}$ when 2≦k≦K, wherein reorder(w_(2k−2)) refers to exchanging positions of a (2i−1)^(th) item and a 2i^(th) item of a vector w_(2k−2), and then calculating a conjugate of each item of the vector, wherein i=1, 2, . . . , k−1, and w_(2k−2)=F_(2k−2)ũ′_(2k−2); and recovering the signal according to the F_(2K). 